<?php
function writeMyName()
{
echo "David Yang";
}echo "My name is ".writeMyName();echo ".<br />That's right, ".writeMyName();?>
输出的结果我觉得应该是:My name is David Yang.
That's right, David Yang但是程序执行出来是:
David YangMy name is David Yang.
That's right,为什么会出现这个问题???
刚学php 比较困惑,希望高人指点一下,谢谢了!
function writeMyName()
{
echo "David Yang";
}echo "My name is ".writeMyName();echo ".<br />That's right, ".writeMyName();?>
输出的结果我觉得应该是:My name is David Yang.
That's right, David Yang但是程序执行出来是:
David YangMy name is David Yang.
That's right,为什么会出现这个问题???
刚学php 比较困惑,希望高人指点一下,谢谢了!
<?php
function writeMyName()
{
return "David Yang";
}echo "My name is ".writeMyName();echo ".<br />That's right, ".writeMyName();?>
function writeMyName()
{
echo "David Yang";
}echo "My name is ";
writeMyName();echo ".<br />That's right, ";
writeMyName();
function writeMyName()
{
return "David Yang";//return 就会是你的期望,你的函数没返回值,在执行echo语句的时候,先执行了函数,就是函数里的echo
}===========================
function writeMyName($str)
{
echo $str . '#';
}echo "My name is ".writeMyName(1) . writeMyName(2);//print 1#2#My name is,可见一个语句里,多个函数的调用顺序==========================class Test {
public function main() {
register_shutdown_function(array($this, "foo"));
}
public function foo() {
echo 'David Yang';
}
}
$t = new Test();
echo 'My name is ' . $t->main();//print My name is David Yang
echo "My name is ".writeMyName();
输出之前运行到了writeMyname()函数了.但是那函数也有echo
所以就是函数的echo在前 然后才到你的echo "My name is"....
<?php
function writeMyName()
{
echo "David Yang";//这里是echo.
}echo "My name is ".writeMyName();
echo ".<br />That's right, ".writeMyName();
//echo的时候会先执行函数,而函数里是直接echo,并不是返回值。所以就会先打印"David Yang";
?>
会先编译 “XXX”,
所以 “XXX” 的内容被先执行了