2014-02-24 25 views
2

使用PHP CLI解釋器時,如何重新定義有錯誤的函數。例如,原來這裏的函數聲明沒有一個換行符,我想解決它:在PHP CLI解釋器中重新定義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 > 

我們已經看到了問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! 
>>> 
+0

爲什麼要解釋此事?語言是一樣的,你根本沒有像'$ _SERVER ['HTTP_HOST']'這樣的HTTP東西。 –

+1

如果你有可能犯錯,那麼不要使用'-a'選項。將php代碼保存到一個文件中,例如'test.php'並像這樣運行'php test.php'。 – RiggsFolly

+0

使用向上和向下箭頭編輯以前插入的代碼。 –

回答

2

如果你使用PHP 5.3或更新版本,你可以做以下

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

謝謝哈澤姆!雖然它不能解決問題,但您確實提供了創造性的解決方法。 – dotancohen