Articles of language design

PHP string type-hinting

Почему PHP поддерживает только подсказку типа для массивов и объектов? Я хочу использовать подсказку типа следующим образом: protected function addServiceToken(string $token) { if(!array_key_exists($token, $this->service_tokens)) $this->service_tokens[$token] = 'waiting'; return $this->checkServiceTokenStatus($token); } Вместо добавления менее элегантного вызова is_string($token) чтобы обеспечить правильный тип аргумента. @ Даниэль Эгеберг пишет в ответ на соответствующий вопрос : В настоящее время существует […]

Почему атрибуты PHP не позволяют выполнять функции?

Я довольно новичок в PHP, но я программировал на подобных языках уже много лет. Меня смутило следующее: class Foo { public $path = array( realpath(".") ); } В результате возникла синтаксическая ошибка: Parse error: syntax error, unexpected '(', expecting ')' in test.php on line 5 синтаксиса: Parse error: syntax error, unexpected '(', expecting ')' in […]

Почему функция call_user_func () PHP не поддерживает передачу по ссылке?

Почему функции обработки функций, такие как call_user_func() поддерживают передачу параметров по ссылке? В документах написаны такие простые вещи, как «Обратите внимание, что параметры для call_user_func () не передаются по ссылке». Я предполагаю, что у разработчиков PHP была какая-то причина для отключения этой возможности в этом случае. Были ли они связаны с техническим ограничением? Это был […]