谁能解释一下 C 和 PHP 中 if('0') 的内在区别? 在 C 中,if('0') 为假,而在 PHP 中为真。
最佳答案
嗯,“C” 语言,可追溯至 1970 年代,比 PHP 更字面意思! :-)
首先,“C”语言对“a string
数据类型”确实没有任何概念。 “这些都还没有被发明。”
此外,编译器“假定您实际上知道自己在做什么。”(也就是说,“您不会向它提供‘废话’。”)作为一个非常literal 语言,它假定您一定以同样的方式思考。
快进至少一代人,我们来到“PHP”。 CPU 现在远比以前的 PDP-7 更强大,内存也大了一个数量级,现在我们正试图“改变语言的 em> 对事物的解释,以更好地匹配“普通 人类” 的含义,而不是相反。
因此,PHP 语言将 “0”
视为“false
-y”。 PHP 没有像C 设计(!) 那样将其观点限制为“特定的存储表示”,而是看到 “0”
作为“零” ... 即使严格来说,它是“一个字符串” ... 因此将其视为:“false
-是的。”
是的......“对源代码含义的潜在解释”有 确实“在四十多(!)年里发生了变化......”
关于php - C 和 PHP 之间 if ('0' ) 的内部差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38493743/