Articles of type hinting

Можете ли вы намекать на возвращаемые типы в PHP 5.2.5?

Я думаю, что мои ссылки ctrl + click eclipse могут сильно выиграть … Изменить: я использую eclipse PDT. Редактирование 2: я очень доволен решением по размещению docblocks перед функциями (и переменными) с помощью оператора @return или @var, я только что обновил документацию моего приложения, и теперь eclipse показывает мне, какие функции доступны для какие объекты! […]

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 namespace Sandbox; class Sandbox { private Connectors\ISandboxConnector $connection; public function __construct(Connectors\ISandboxConnector $conn) { $this->connection = $conn; } } ?> Для вышеуказанного кода я получаю следующую ошибку: Parse error: syntax error, unexpected 'Connectors' (T_STRING), expecting variable (T_VARIABLE) Когда я var_dump тип var_dump и var_dump что переменная $ connection, это будет private Sandbox\Sandbox а не Sandbox\Connectors\ISandboxconnector […]

Тип подсказки для любого объекта

Я работал над кодом, который предназначен для использования с объектами, не заботясь о том, что такое объект. Я хотел ввести подсказку о том, что написанный метод ожидает объект любого типа, но натолкнулся на некоторые трудности. Я попробовал function myFunc (object $obj) и function myFunc (stdClass $obj) но обе эти сгенерированные ошибки, когда я пытался передать […]

Невозможно передать нулевой аргумент при использовании типа hinting

Следующий код: <?php class Type { } function foo(Type $t) { } foo(null); ?> не удалось во время выполнения: PHP Fatal error: Argument 1 passed to foo() must not be null Почему не разрешено передавать null так же, как и другие языки?

Неверный тип возврата php7 не работает?

У меня проблема с типами возврата в php7, особенно «void». он работает со всеми другими типами, int, string, null, bool, объектами класса. но когда я использую void, он ожидает, что я верну экземпляр объекта void, но на самом деле он не должен ожидать какого-либо возврата, как то, для чего нужен void. note: Я запускаю PHP […]

Ошибка при передаче строки в метод с типом намека

В приведенном ниже коде я вызываю функцию (это, случается, конструктор), в котором я набираю тип. Когда я запускаю код, я получаю следующую ошибку: Допустимая фатальная ошибка : аргумент 1 передан в вопрос :: __ construct () должен быть экземпляром строки, указанной строки, вызываемой в run.php в строке 3 и определенной в question.php в строке 15 […]

Тип Hinting: параметры по умолчанию

Тип подсказки PHP 5 вводит Type Hinting. Теперь функции могут заставить объекты быть объектами (путем указания имени класса в прототипе функции) или массивов (начиная с PHP 5.1). Однако, если NULL используется как значение параметра по умолчанию, он будет разрешен в качестве аргумента для любого последующего вызова. Следующая выдержка из вышесказанного: если NULL используется как значение […]

Тип намека на PHP 7 – массив объектов

Может быть, я что-то пропустил, но есть ли возможность определить, что функция должна иметь аргумент или возвращать массив массива объектов User? Рассмотрим следующий код: <?php class User { protected $name; protected $age; /** * User constructor. * * @param $name */ public function __construct(string $name, int $age) { $this->name = $name; $this->age = $age; } […]