为什么函数名称连接在PHP中不起作用?

时间:2009-09-23 04:02:24

标签: php abuse

<?php

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

?>

产量

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

为什么?

3 个答案:

答案 0 :(得分:17)

echo在技术上不是PHP中的函数。这是一种“语言结构”。

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

的替代语法

您可以这样做:

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

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

答案 1 :(得分:3)

echo是一种语言结构,而不是一种功能。你要做的事情将与实际功能一起使用。这样的事情会起作用。

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

答案 2 :(得分:1)

echoprintdierequirerequire_onceincludeinclude_once等等(我肯定)我错过了一些)不是函数而是语言结构。括号中使用say echo()是语法糖。

如果你想像上面那样使用它们,你需要将它们包装成一个函数:

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

$c = "echoMyEcho";
$c("Let go of my eggo");