php1为true,php有一个预定义的常量true,值为整数1,这该如何理解?
我在执行get_defined_constants()时意外地发现php有一个内部的常量,名称为true,值为整数1,同样也有名为false和null的常量。
难道php把true当做常量来处理了?它本不应该是一个“值”么?
不应该是一个数据类型为boolean的值么?
我试着执行echo(true) ,浏览器输出字符1,而我var_dump(true),输出了bool(true),这不是显然矛盾么?
而且,true===1也是不成立的啊。true==1才是成立的。
所以我想知道php到底是怎么处理true false null的。
回复内容:
我在执行get_defined_constants()时意外地发现php有一个内部的常量,名称为true,值为整数1,同样也有名为false和null的常量。
难道php把true当做常量来处理了?它本不应该是一个“值”么?
不应该是一个数据类型为boolean的值么?
我试着执行echo(true) ,浏览器输出字符1,而我var_dump(true),输出了bool(true),这不是显然矛盾么?
而且,true===1也是不成立的啊。true==1才是成立的。
所以我想知道php到底是怎么处理true false null的。
echo 输入是字符串,所以true有类型转换进去。可以参考这里
Printing or echoing a FALSE boolean value or a NULL value results in an empty string:
(string)TRUE //returns "1"
(string)FALSE //returns ""
echo TRUE; //prints "1"
echo FALSE; //prints nothing!
参考文档
歪楼。讲个 C++ 的故事。
Windows API 有一个数据类型 BOOL, 定义类似
typedef int BOOL;
然后还有 TRUE 和 FALSE 宏,定义分别是
#define TRUE 1
#define FALSE 0
C++ 本尊还有一个宏 NULL, 定义则是
#define NULL 0
以及我怀疑 PHP 的做法是把 true 当做 boolean 类型的 1. 瞎猜的,错了请尽情反对。
相关标签:php
本文原创发布php中文网,转载请注明出处,感谢您的尊重!
php1为true,php有一个预定义的常量true,值为整数1,这该如何理解?相关推荐
- php 为什么定义常量,php-将预定义常量定义为什么
我有一个数据库类,该类自动建立与数据库的连接,并执行一些基本的输入筛选等操作.我正在查看设置一些预定义的常量,以调整类方法的行为.我应该将常量的值设置为什么?因为将永远不会直接引用或比较这些值,而仅在 ...
- php不是预定义超全局变量,五、PHP知识核心 预定义变量(超全局变量/数组)
主要有:$_GET, $_POST, $_REQUEST, $_SERVER, $GLOBALS 均是数组 系统定义与维护 具有超全局作用域 不同情形下可能具有不同的值 $_GET:get请求(发送数 ...
- 【数据结构必备基本知识】数据结构常用预定义常量、类型及头文件
数据结构中我们经常要用到很多预定义的常量,如果每次自己输入,那就比较麻烦啦,在这里,给大家把常用的预定义常量分享出来,下次再用到,直接复制粘贴就好啦. 一.常用头文件 首先自然是常用头文件,因为作者是 ...
- 创建一个显示所有预定义系统颜色的ListBox
原文 Creating a ListBox that Shows All Predefined System Colors 该System.Windows.SystemColors类包含了一系列揭露当 ...
- TVM部署预定义模型
TVM部署预定义模型 本文通过深度学习框架量化的模型加载到TVM中.预量化的模型导入是在TVM中提供的量化支持之一. 本文演示如何加载和运行由PyTorch,MXNet和TFLite量化的模型.加载后 ...
- VC++更改鼠标指针为系统预定义形状和自定义形状
新建一个单文档工程:为视类添加WM_SETCURSOR消息处理函数: 设置鼠标指针为IDC_CROSS,这是系统预定义的,十字形:LoadCursor载入系统预定义光标时,第一个参数为NULL: 预定 ...
- PHP中的预定义常量
PHP可以用预定义常量来获取PHP中的信息.常用的预定义常量如下: 1.__FILE__ 默认常量,是指PHP程序文件名及路径: 2.__LINE__ 默认常量,是指PHP程序的行数: 3.__CL ...
- 关于VC预定义常量_WIN32,WIN32,_WIN64等预定义宏的介绍(整理、转载)
参考帖子: (1)MSDN上专门讲预定义宏:https://msdn.microsoft.com/en-us/library/b0084kay(v=vs.80).aspx (2)VS中属性页的配置介绍 ...
- (三)使用预定义模型QDirModel的例子
目录: (一) Qt Model/View 的简单说明 .预定义模型 (二)使用预定义模型 QstringListModel例子 (三)使用预定义模型QDirModel的例子 (四)Qt实现自定义模型 ...
最新文章
- 我又来定计划了~2015-8至年底
- NR 5G NAS非接入层
- 畅通工程,How Many Tables ACM第九天-图论
- erp物料报废 oracle_ERP核心业务流程和Oracle-ERP业务和数据对象分析
- PyTorch基础(part2)
- 电话光端机原理及作用分析
- 从数据平台到报表开发,我靠这个零代码报表工具,转行后月薪3W
- php arsort函数,php-常用函数
- 为了躲开违规电动车,我一下子撞电线杆上了
- dmg2iso使用及转换DMG文件遇到的问题
- java学习练习预埋件配筋计算
- 创新设计思维自学报告
- windows XP下openbravo ERP 2.40安装手迹
- 什么是无线信号的灵敏度和保真度
- 事物(Transaction)
- 解决mysql存储特殊文字(表情符号)utf8mb4
- 华为魔术2手机拆机图解_荣耀Magic2做工如何?荣耀Magic2拆解图解评测 (全文)
- 比人工更智能更有趣的植物识别--形色
- python中的slice用法
- 豆瓣 9.3 的高分,牛逼的 Git!
热门文章
- linux嵌入式开发遇到坑不用慌 让你快速提升进度
- 《Hadoop MapReduce性能优化》一1.3 Hadoop MapReduce的工作原理
- 一些变态的PHP一句话后门收集
- 桌面开发者的界面故事,该醒醒了
- 好用的侧边栏菜单/面板jQuery插件
- Linux 增大Swap
- 导入已有工程相关问题解决实录
- 最短路[Dijkstra和堆优化的Dijkstra][Bellman-Ford和SPFA][Floyd最短路](更新中)
- PAT甲级1058 A+B in Hogwarts :[C++题解]字符串,进制,简单
- stm32跑马灯实验