empty
来源:互联网 发布:java 面试宝典2017 编辑:程序博客网 时间:2024/05/22 08:25
函数说明
实际执行的是源码中的i_zend_is_true
函数/** * 使用一个字符串分割另一个字符串 * @param mixed $val 变量或表达式 * @return bool */empty ( $val )
实现流程
判断参数
IS_NULL: true
IS_LONG, IS_BOOL, IS_RESOURCE: 可以理解为 int,为 0 时返回 true
IS_DOUBLE: 转换为 IS_LONG,即 float转换为 int
IS_STRING: 如果长度为 0,或者为 “0” | ‘0’,返回 true
IS_ARRAY: 如果数组长度为 0,返回 true
IS_OBJECT: ???执行逻辑
按不同参数执行即可
实现代码
<?phpfunction myEmpty($val) { if (is_null($val)) { return true; } switch ($val) { case is_bool($val): case is_int($val): case is_float($val): $result = ($val == 0); break; case is_string($val): //"" == null 但 is_null("")==false $result = ($val === "" || $val === "0"); break; case is_array($val): $result = (sizeof($val) == 0); break; default: $result = true; } return $result;}var_dump(empty(null));var_dump(empty(0));var_dump(empty(0.0));var_dump(empty(00));var_dump(empty('0'));var_dump(empty('0.0'));print "\n";var_dump(myEmpty(null));var_dump(myEmpty(0));var_dump(myEmpty(0.0));var_dump(myEmpty(00));var_dump(myEmpty('0'));var_dump(myEmpty('0.0'));print "\n";
0 0
- empty()
- empty
- empty
- empty
- empty
- Empty Classes
- Array#empty!
- So Empty
- empty函数
- logic:empty
- empty()
- String.Empty
- empty operator
- String.Empty
- string.Empty
- php empty
- empty value
- PHP empty()
- HTML5对手机页面长按会粘贴复制禁用的解决方法(常用)
- C++ UnitTest编写
- 电脑盘符太少教你在不用重装系统的前提下扩展盘符
- 猜数字(c语言实现)
- imx6q的kernel在yocto中的有关内容
- empty
- Linux下访问不了Tomcat下的项目
- android 自定义view仿通讯录
- 我的第一篇博客
- offset、client、scroll
- 01背包问题(leetcode 416. Partition Equal Subset Sum & leetcode 474 ones and zeroes)
- 在Windows下编译Caffe的Python接口
- 滤波器设计注意事项:
- 文件上传组件用到iframe在IE8,9中报拒绝访问的错误