前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP数组is_*()对比和解析

PHP数组is_*()对比和解析

作者头像
php007
发布2019-09-19 14:16:16
1.4K0
发布2019-09-19 14:16:16
举报
文章被收录于专栏:PHP专享栏PHP专享栏

这篇篇文章 讲的是 PHP一系列is函数

is_array — 检测变量是否是数组

is_bool — 检测变量是否是布尔型

is_callable — 检测参数是否为合法的可调用结构

is_dir — 判断给定文件名是否是一个目录

is_double — is_float() 的别名

is_float — 检测变量是否是浮点型

is_file — 判断给定文件名是否为一个正常的文件

is_int — 检测变量是否是整数

is_null — 检测变量是否为 NULL

is_numeric — 检测变量是否为数字或数字字符串

is_object — 检测变量是否是一个对象

is_string — 检测变量是否是字符串

如is_null,is_object,is_array,is_string,is_resource,is_bool,is_long,is_float 今天补充一下..他们的判断方法是一样的,只讲一个is_null其他的就能明白了. is_null是一个函数.定义在 ext/standard/type.c文件中. 所有 类型的操作都在这个文件里,settype,gettype,intval等函数也在这里.

它调用了 php_is_type函数,该函数 后面传递的是要检测的类型.

第九行 会调用 Z_TYPE_PP来获取传递进来的值的类型..前面文章有讲到.

如果不等于该函数的第二个参数type直接返回FALSE; 如果等于我们要检测的类型,但是 对象或者是资源 就还要做相应的判断. 是对象的话,十六行会获取 _zend_class_entry 结构的name值,该值必须等于INCOMPLETE_CLASS INCOMPLETE_CLASS是一个宏, #define INCOMPLETE_CLASS “__PHP_Incomplete_Class” 也就是说必须是一个类的实例化才行.

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 风帆 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档