private static function pluralType($n)
{
return $n != 11 && $n % 10 == 1 ? 0 : 1;
}
// Когда аргументы и их количество известно заранее
// Такой вариант мне кажется самым читабельным
// Оборачивать в фигурные скобки не обязательно
// Я это делаю всегда для того, чтобы было видно, что вызов динамический
$this->obj->{$function}($arg1, $arg2)
// Подходит как раз для описанного случая
// Аргументы могут быть любыми и передаются в виде массива
call_user_func_array([$this->obj, $function], [$arg1, $arg2]);
preg_replace('#(\d{2})(\d{2})(\d{2})#', '$1.$2.$3', '090158')
implode('.', [substr($n, 0, 2), substr($n, 2, 2), substr($n, 4, 2)])
class Test
{
public function __construct(SomeInterface $someInterface)
{
$this->someInterface = $someInterface;
}
}
interface SomeInterface
{
public function foo($bar);
}
class SomeClass implements SomeInterface
{
public function foo($bar)
{
}
}
$a = new SomeClass("bar");
$b = new Test($a);
class Util
{
public static function ConvertFunctionName ($function_name)
{
return str_replace("_", ".", $function_name);
}
}
class Class
{
public function foo ()
{
$function_name = Util::ConvertFunctionName(__FUNCTION__);
}
}
<ul class="letters">
<?php foreach($data->real_letters as $key => $letter): ?>
<? $class = (array_key_exists($key, $second_array)) ? ' selected' : ''; ?>
<li><div class="letter <?= $class; ?>"><a href="#<?php echo $key; ?>"><?php echo $letter; ?></a></div></li>
<?php endforeach ?>
</ul>