@return int всегда возвращает строку php - PullRequest
0 голосов
/ 20 февраля 2019

У меня есть следующий фрагмент кода:

 /**
 * @return int
 */
public function getId()
{
    return $this->id;
}

Когда я выполняю на сервере с apache2 , это всегда возвращает строковое значение, но на другом сервере с nginx возвращает целочисленное значение.Почему здесь разница, конфигурация в nginx или apache или php.ini?

У меня есть php7 на обоих серверах.

Пожалуйста, мне нужно знать, почему возникает эта проблема.Спасибо за ответ.

1 Ответ

0 голосов
/ 21 февраля 2019

PHP комментарии обычно не влияют на время выполнения.Существуют особые случаи, когда комментарии используются в коде, но подсказки типов обычно не являются одним из них.Это просто для людей и IDE, чтобы предоставить информацию о типе.

Так что причина в том, что откуда бы это значение ни делалось, оно отличается.

Вы можете cast , как при преобразовании, значение в необходимый тип явно return (int) $this->id.

Начиная с PHP 7, оно делает , позволяя явно указать тип возвращаемого значения:

public function getId() : int
{
    return $this->id;
}

Подробнее см. объявление типа возврата в документации.

...