2009-09-23 45 views
4
<?php 

$a = 'ec'; 
$b = 'ho'; 
$c = $a.$b; 
echo('Huh?'); 
$c('Hello, PHP!'); 

?> 

產生爲什麼函數名連接不能在PHP中工作?

Huh? 
Fatal error: Call to undefined function echo() in <...>/php.php on line 11 

爲什麼?

+0

你不必一行11這一切嗎?你在哪裏分配$ c回聲? – lod3n 2009-09-23 04:05:38

+0

對不起,我從原始代碼編輯了一下,並沒有重新運行。 – qwzybug 2009-09-23 04:32:12

回答

17

echo在技術上不是PHP的功能。這是一個「語言結構」。

echo('Huh?')echo 'Huh?'

一種語法你可以這樣做,而不是:

function my_echo($s) { 
    echo $s; 
} 

$a = "my_echo"; 
$a("Huh?"); 
+2

只是爲了增加一個精度:echo是一個「語言結構」,不能用變量函數調用 - 正如其手冊頁所述:http://php.net/echo – 2009-09-23 04:13:04

+0

您在寫作時添加了函數包裝我的回答,其中提到了函數包裝。 +1 – MitMaro 2009-09-23 04:21:06

+2

我要說一些自2001年以來我沒說過的話:謝謝你教我一些關於PHP的新知識。 – qwzybug 2009-09-23 04:32:46

3

回聲是一個語言結構而非函數。你試圖做的事情將與實際功能一起工作。像這樣的東西會奏效。

<?php 
function myecho($src) { echo $src; } 
$a = 'myec'; 
$b = 'ho'; 
$c = $a.$b; 
$c('This is a test'); 
?> 
1

echoprintdierequirerequire_onceincludeinclude_once和其他人(我相信我錯過了一些)都沒有的功能,但是語言構造。在括號中使用echo()就是語法糖。

如果你想使用它們就像你有你上面需要將其包裝成一個功能:

<?php 
function echoMyEcho($str){ 
    echo $str; 
} 

$c = "echoMyEcho"; 
$c("Let go of my eggo"); 
相關問題