如何走到这一步的工作(启用严格模式):使用速记回声时,函数中的双重回声如何工作?
<? function test() { echo 'hello world'; } ?>
<?= test(); ?>
,这并不:
<?= echo 'hello world'; ?>
如何走到这一步的工作(启用严格模式):使用速记回声时,函数中的双重回声如何工作?
<? function test() { echo 'hello world'; } ?>
<?= test(); ?>
,这并不:
<?= echo 'hello world'; ?>
鉴于
<?php
$foo = 'foo';
?>
然后,这些都产生完全相同的输出,字 '富':
<?= $foo ?>
<?= 'foo' ?>
foo
<?php echo $foo ?>
不管是什么 “说法” 的代码<?= ... ?>
在里面,它就会输出。如果它是一个函数调用,该函数将被执行并且其返回值是输出。如果它只是一个值(变量,固定字符串/整数),则输出该值。
echo
是语言结构,在某些情况下可以像函数调用一样处理,但它确实有不是有返回值。所以
<?= echo $foo ?>
呼应了通过echo命令$foo
的价值,但随后呼应没有别的,因为echo
本身没有返回值。现在
,如果它是
function myecho($foo) {
echo $foo;
return $foo;
}
<?= myecho('foo'); ?>
然后你得到这样的:
foofoo
^^^---echo inside the function
^^^---- <?= implicit echo
作为输出。 ?
因为它调用的函数,然后输出函数的返回值。由于返回值没有任何意义,因此会调用内部的回显,然后打印出'Nothing'(NULL
)。
'' –
danronmoon
2014-08-29 15:37:14
echo实际上并不是一个函数(它是一种语言结构)。回声(与其他一些语言结构不同)不像函数那样工作,所以它不能总是用在函数的上下文中。 – 2014-08-29 15:38:16
'PHP解析错误:?语法错误,意想不到的 '回响'(T_ECHO)''上<=回波 '富'; ?>。这不是全说吗? – hek2mgl 2014-08-29 15:43:22