2009-09-23 46 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"); 
相关问题