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

在PHP CLI解释器中重新定义PHP函数,php,command-line-interface,Php,Command Line Interface,使用PHP CLI解释器时,如何重新定义有bug的函数。例如,这里的原始函数声明缺少换行符,我想修复它: $ php -a Interactive shell php > function drinkBeer(){ php { echo "Carlsburg"; php { } php > php > drinkBeer(); Carlsburgphp > php > php > function drinkBeer(){ php {

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

$ 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 >
我们看到过类似的问题,但是没有一个类似的问题涉及重新定义PHP CLI解释器上的函数。

例如,Python解释器允许:

$ python3

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

有关面向函数的编程,请参见此

从面向对象的形式,只需在子类中声明函数并使用它

希望这是有益的


祝你好运

如果您使用的是PHP5.3或更新版本,则可以执行以下操作

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

为什么口译员很重要?语言是一样的,您根本无法访问HTTP内容,如
$\u SERVER['HTTP\u HOST']
。如果您有可能出错,请不要使用
-a
选项。将php代码保存到一个文件中,例如
test.php
,然后像这样运行
php test.php
。使用上下箭头编辑先前插入的代码。@RiggsFolly:考虑到可能出错的是
E=1/2 m v^2
,并且我有太多
m
,我犯了很多错误!我们都有。我并不是说只有你才会犯错误,只是如果你不必每次都编写100%的脚本,那么修复它们就更容易了!谢谢你,哈兹姆!虽然它不能解决这个问题,但您确实提供了一个创造性的解决方法。这在CLI模式下使用PHP时非常有用