PHP打印添加怪异的解释
这与: 我想知道为什么 印刷品(99)+印刷品(99)+印刷品(99)+印刷品(99) 显示99100100100 我想了解PHP的怪癖。因为PHP打印添加怪异的解释,php,Php,这与: 我想知道为什么 印刷品(99)+印刷品(99)+印刷品(99)+印刷品(99) 显示99100100100 我想了解PHP的怪癖。因为 打印 始终返回1 因为print()总是返回1。检查 这与不返回值的echo()不同 print()和echo()都不是实际的函数,而是语言结构。函数生成输出,然后(请参阅)返回值1。更复杂的是,print函数是一种不需要括号的语言构造(参见文档) 那么,如果你有这份声明 print(99) + print(99); 您实际看到的是打印99,从最右边
打印
始终返回1
因为print()
总是返回1。检查这与不返回值的echo()不同
print()
和echo()
都不是实际的函数,而是语言结构。函数生成输出,然后(请参阅)返回值1。更复杂的是,print
函数是一种不需要括号的语言构造(参见文档)
那么,如果你有这份声明
print(99) + print(99);
您实际看到的是打印99,从最右边的
print
,然后是print(99)+1的结果代码>由于语言结构,与print99+1相同代码>或<代码>打印(99+1)
打印不是一项功能,因此Print(99)
与print99
相同。为了清楚起见,我们可以去掉括号
print 99 + print 99 + print 99 + print 99;
表达式从右侧求值,因此变为
print (99 + print (99 + print (99 + print 99)));
最右边的print
首先执行,打印“99”并计算为1
输出:
99
99100
有待评估的代码:
print (99 + print (99 + print (99 + 1)));
print (99 + print (99 + 1));
同样,执行最右边的打印,它打印99+1(“100”)并计算为1
输出:
99
99100
有待评估的代码:
print (99 + print (99 + print (99 + 1)));
print (99 + print (99 + 1));
…等等。解释与副本相同。您的链接问题已经包含了一些很好的解释。还有什么不清楚的?我读了另一个帖子,但我仍然不明白我问的问题是怎么回事(打印(99)+打印(99)+打印(99)…顺便说一句,打印(2)+3=打印(2+3)。。。。但我不知道print(99)是如何得到1的。我原以为第一个是100,但它是99…如果你用四个不同的数字,你会看到更好的顺序。实际上,print
根本不是一个真正的函数。它是一种语言结构,就像echo
。它甚至在文档的第一句中这样说……手册上说“print
实际上不是一个真正的函数(它是一种语言结构)”。+1比我的答案解释得更好。