php - C 和 PHP 之间 if ('0' ) 的内部差异?

标签 php c

谁能解释一下 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/

相关文章:

javascript - 从 foreach 输出中单独选择多个选择的最佳方法

php - XMLHttprequest 发送空帖子

php - 循环日期函数php

c - scanf 读取上一行而不是获取新行

c - 将 libpq-fe.h 添加到 qt 现有项目

c - 努力编写一个简单的计算器

java - 指向结构指针的指针作为 JNA 中的参数

php - 文本区域来自 mysql 数据库的新行?

php - 警告 preg_match()、mysqli_query() 在 xampp 上的 codeigniter 中出现错误

c++ - 关于 OpenGLES 中的纹理切换