Помогает ли хинтинг типов в выполнении сценариев PHP? - PullRequest
8 голосов
/ 27 августа 2010

Подсказка типов помогает компилятору принять тип переменной, но, поскольку PHP является интерпретируемым языком динамического скриптинга, у меня возник вопрос, возможно ли, что подсказка типов даже ускоряет выполнение или нет?

Ответы [ 3 ]

17 голосов
/ 27 августа 2010

PHP - динамический язык.
Динамические языки поддерживают только проверку во время выполнения.
Подсказка типов - проверка типов во время выполнения.
Проверка типов во время выполнения плохо влияет на производительность.
Поэтому подсказки типа плохо влияют на производительность.

4 голосов
/ 27 августа 2010

Подсказка типа только снижает производительность, поскольку требует (для объектов) проверить иерархию наследования. Что еще хуже, этот вид проверки дорог в PHP, потому что он выполняется во времени, пропорциональном глубине иерархии.

Тест для типа, такой как тест для подсказки array, требует гораздо меньших издержек.

Кроме того, в настоящее время он не используется ни для каких целей оптимизации.

Это, однако, полезная функция защитного программирования.

1 голос
/ 27 августа 2010

Все подсказки по типу в PHP - это добавление кода, который проверяет тип параметров и дает сбой, если он не соответствует ожидаемому, поэтому подсказка по типу НИКОГДА не помогает производительности.Его единственное реальное использование - для отладки, поэтому, если у вас есть функция, которая вызывается очень часто, удаление подсказки типа в производственном коде может ускорить процесс, тем более что проверка типа объекта не самая быстрая вещь в мире.

также см. когда мне следует использовать подсказки типов в PHP?

...