在PHP CLI解释器中重新定义PHP函数
使用PHP CLI解释器时,如何重新定义有bug的函数。例如,这里的原始函数声明缺少换行符,我想修复它:在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 -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时非常有用