Можно ли переопределить функцию PHP по умолчанию? - PullRequest
3 голосов
/ 23 августа 2011

Я бы хотел переопределить PHP-функцию _(), чтобы она поддерживала один или несколько аргументов.Возможно ли это сделать с помощью PHP-кода?

Ответы [ 4 ]

3 голосов
/ 23 августа 2011

Нет, но с версией PHP> = 5.3.0 вы можете использовать namespace хотя.

1 голос
/ 23 августа 2011

На самом деле не делай этого!Даже если вы являетесь единственным разработчиком этого проекта и знаете, что ваш проект не будет успешным, вы никогда не сможете узнать, как долго будет использоваться ваш код (часто гораздо дольше, чем вы думаете).Если другому разработчику придется погрузиться в ваш код, ему будет очень трудно, потому что он / она не может полагаться на сам PHP.

Лучшим способом было бы написать свои собственные методы / функции, которые затем вызываютфункция PHP, которую вы хотите перезаписать.Таким образом, разработчик сразу увидит, что это не стандартная функция PHP, и даже если PHP разрешит другие параметры в будущих версиях, у вас будет чистое решение.

1 голос
/ 23 августа 2011

Это возможно при использовании расширения Runkit .

Однако, как правило, это не считается хорошей идеей, за исключением использования с такими вещами, как модульное тестирование, где вы можете выделить некоторыевашей функциональности.

Для общего использования вам не следует переопределять встроенные функции, потому что это усложняет поддержку вашего кода и открывает для вас очень сложные для отладки проблемы.

Кроме того, расширение Runkit помечено как «экспериментальное», что означает, что действительно не должно использоваться в производственной системе.

1 голос
/ 23 августа 2011

Вы можете попробовать расширение runkit , но это считается плохой практикой в ​​производственных средах.Смотрите также Переопределение функции PHP?

...