在PHP CLI解释器中重新定义PHP函数

时间:2014-02-24 12:46:25

标签: php command-line-interface

使用PHP CLI解释器时,如何重新定义具有错误的函数。例如,这里的原始函数声明缺少换行符,我想解决它:

$ php -a
Interactive shell

php > function drinkBeer(){
php {     echo "Carlsburg";
php { }
php > 
php > drinkBeer();
Carlsburgphp > 
php > 
php > function drinkBeer(){
php {     echo "Carlsburg" . PHP_EOL;
php { }
PHP Fatal error:  Cannot redeclare drinkBeer() (previously declared in php shell code:2) in php shell code on line 3
php >

我们已经看到类似的问题问how to redefine a function when running a PHP script然而没有类似的问题解决了在PHP CLI解释器上重新定义函数的问题。

例如,Python解释器允许这样:

$ python3

>>> def drinkBeer():
...  print('Carlsburg')
... 
>>> drinkBeer()
Carlsburg
>>>
>>> def drinkBeer():
...  print("You've had enough!")
... 
>>> drinkBeer()
You've had enough!
>>>

2 个答案:

答案 0 :(得分:3)

如果您使用的是PHP 5.3或更高版本,则可以执行以下操作

$func = function(){ echo "Foo"; };
$func(); //to execute
$func = function(){ echo "Bar"; };
$func(); // will echo Bar

答案 1 :(得分:-1)

参见此功能导向编程 http://www.php.net/manual/en/function.override-function.php

面向对象,只需在子类中声明函数并使用它!

希望它有用...

祝你好运!