请教:为什么 for($i=1;$i<=10;print $i++); 中的print不能换成echo呢?
回复讨论(解决方案)
for($i=1;$i<=10;echo $i++);
Parse error: syntax error, unexpected 'echo' (T_ECHO), expecting ')' in .....
就是这么规定的,没有为什么
到底是什么样的需求 需要在 for 上打印?
好奇怪的写法
for($i=1;$i<=10;echo $i++);
Parse error: syntax error, unexpected 'echo' (T_ECHO), expecting ')' in .....
就是这么规定的,没有为什么
开始想是否是print和echo的返回值问题,可又想不明白,想搞懂,求指点!
到底是什么样的需求 需要在 for 上打印?
不是项目实战,就是看手册发现了这个问题......
好奇怪的写法
确实挺奇怪的,平时都没这么写
for($i=1;$i<=10;echo $i++);
Parse error: syntax error, unexpected 'echo' (T_ECHO), expecting ')' in .....
就是这么规定的,没有为什么
开始想是否是print和echo的返回值问题,可又想不明白,想搞懂,求指点!
是的,是返回值的问题,echo 没有返回值,所以不允许那么写
语法错了,改这样for($i=1;$i<=10;$i++){ echo $i;}
语法错了,改这样for($i=1;$i<=10;$i++){ echo $i;}
我知道可以这样写,就是想弄懂为什么一行写的时候echo替换print会出错
for ($i = 1; $i <= 10; echo $i, $i++);
上面的写法 确实蛮奇怪的
语法错了,改这样for($i=1;$i<=10;$i++){ echo $i;}
我知道可以这样写,就是想弄懂为什么一行写的时候echo替换print会出错
版主已经回答你了,因为print成功始终会返回1,而echo没有返回值,所以原语句相当于for($i=1;$i<=10;1){$i++;}和for($i=1;$i<=10;){$i++;},显然echo会出错
赞同7楼+1