`
dengbaoleng
  • 浏览: 1151585 次
文章分类
社区版块
存档分类
最新评论

原:PHP数组函数研究:is_null,is_object,is_array,is_string,is_resource等

 
阅读更多
声明:本文为斯人原创,全部为作者一一分析得之,有不对的地方望赐教。
欢迎转载,转载请注明出处 。
本文地址:http://imsiren.com/archives/516

前面有一篇文章 讲的是PHP内核源码分析:isset与 empty

但是好像忘记了一系列is函数

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”
也就是说必须是一个类的实例化才行.


分享到:
评论

相关推荐

    php基础函数

    6. **类型检测**: `is_int()`, `is_null()`, `is_float()`, `is_numeric()`, `is_bool()`, `is_string()`, `is_array()`, `is_object()`, `is_resource()` 用于检测变量是否为特定类型。 #### 数组操作函数 1. **...

    PHP 程序设计

    - **`is_null()`**: 检查变量是否为NULL。 - **`is_numeric`**: 检查变量是否为数字或数字字符串。 #### 四、数据类型转换 - **`intval()`**: 将变量转换为整型。 - **`floatval()`**: 将变量转换为浮点型。 - **`...

    编写 PHP Extension.doc

    * IS_RESOURCE:变量是一个资源 zval 状态切换 zval 状态可以通过 PHP 的操作符来切换,例如,使用 `=``赋值操作符可以将变量的状态从 IS_NULL 切换到 IS_LONG。 参数传递 在 PHP 中,参数传递是指函数调用时...

    超全的php检测变量类型函数

    - **函数原型**:`bool is_array(mixed $var)` - **PHP版本**:自PHP 3.0起支持。 - **说明**:当 `$var` 是一个数组时,此函数返回 `true`;如果不是,则返回 `false`。这对于处理用户输入或数据库返回的数据尤其...

    PHP开发中常用处理函数_50.txt

    ### PHP开发中常用处理函数详解 #### 一、字符串处理函数 **1. implode()** - **功能**:将数组中的元素合并成一个字符串,中间可以用指定字符分隔。 - **参数**: - `string $glue`:用于连接各元素的粘合符。 ...

    PHP内核介绍及扩展开发指南—基础知识.pdf

    - IS_RESOURCE:资源型 PHP通过引用计数机制来管理内存,即在zval中记录有多少变量指向同一份数据。当一个变量被创建,其引用计数被设置为1。当其他变量指向同一个数据时,引用计数增加,反之则减少。当引用计数为0...

    计算机后端-PHP视频教程. php与mysql加强- 05. php加强php加强.pdf

    3. 类型检测:PHP提供了is_float(), is_int(), is_string(), is_object(), is_array(), is_resource(), is_bool()和is_null()等函数,用于判断变量是否属于特定类型。 4. 调试打印:在开发过程中,通常需要查看变量...

    php_extension_writing

    - `IS_ARRAY`表示数组。 - `IS_OBJECT`表示对象。 - `IS_STRING`表示字符串。 - `IS_RESOURCE`表示资源。 2. **引用计数与复制**: - `refcount`用于跟踪有多少个“标签”与这个`zval`关联。如果`refcount`为0...

    大学php经典试题

    7. PHP的数据类型包括integer、boolean、string、array、object、resource和NULL,而不包括friend。 8. 将二进制转换为十进制的函数是bindec()。 9. 在PHP中,制表符的转义字符是\t。 10. is_array()函数用于判断...

    PHP基础笔记pdf

    3. **类型判断**:通过一系列以`is_`开头的函数完成,如`is_int()`、`is_string()`等。 #### 八、总结 PHP作为一种强大的服务器端脚本语言,不仅易于学习,而且功能强大。通过了解PHP的基础知识,包括标记、注释、...

    PHP编程基础与实践教程知识总结.docx

    检测数据类型的函数有`is_bool()`、`is_string()`、`is_numeric()`、`is_integer()`、`is_float()`、`is_null()`、`is_array()`、`is_object()`和`is_resource()`,这些函数可以帮助开发者确保数据的正确性。...

    php 常用的系统函数

    1. `is_bool()`, `is_float()`, `is_integer()`, `is_object()`, `is_array()`, `is_string()`, `is_resource()`, `is_scalar()`, `is_null()`, `is_numeric()`,以及 `gettype()` 和 `settype()`:这些函数用于检查...

    PHP程序设计-3期(KC016) 课后习题2-4 常见数据类型.doc

    `is_int()`等`is_type`系列函数可以帮助我们确保变量的类型符合预期,避免因类型错误导致的程序错误。在处理变量时,应根据实际需求选择合适的数据类型,并利用类型检查函数进行验证,确保程序逻辑的正确性。

    PHP程序设计.pdf

    * 数据类型:PHP支持八种基本数据类型:整型(integer)、浮点型(float)、字符串(string)、布尔型(boolean)、数组(array)、对象(object)、NULL和资源(resource)。 * 变量作用域:PHP中的变量作用域分为...

    PHP速查索引

    - `is_array`:检测变量是否是数组。 - `is_bool`:检测变量是否是布尔型。 - `is_double`:检测变量是否是浮点型。 - `is_float`:检测变量是否是浮点型。 - `is_int`:检测变量是否是整数。 - `is_integer`:检测...

    PHP资料和实用代码

    PHP提供了多种检测数据类型的函数,如`is_bool()`、`is_string()`、`is_float()`、`is_integer()`、`is_null()`、`is_array()`、`is_object()`和`is_numeric()`,分别用于检查变量是否符合相应的数据类型。...

    php面试资料 很好的学习资料

    - 数据类型:包括整型(int)、浮点型(float)、字符串(string)、布尔型(bool)、数组(array)、对象(object)、NULL以及资源(resource)等。 - 控制结构:如if...else、switch、for、while、do...while等...

    PHP 数据类型和判断变量类型

    5. **数组(Array)**:一种特殊的数据结构,可以存储多个值在一个变量中,每个值都有自己的键。 6. **对象(Object)**:PHP的对象是一种复杂的数据结构,包含属性(成员变量)和方法(函数),可以用来实现面向...

    【自学PHP】第二课:PHP数据类型

    2. **复合数据类型**:主要包括数组(array)和对象(object)。 3. **特殊数据类型**:包括资源(resource)和空值(null)。 #### 二、标量数据类型 ##### 1. 布尔型 (Boolean) 布尔型是最简单的数据类型之一,...

Global site tag (gtag.js) - Google Analytics