PHP中的变量
来源:互联网 发布:c语言是否有指针 编辑:程序博客网 时间:2024/06/10 02:45
PHP在声明或者使用变量的时候,不需要显式指定数据类型,但是PHP中依然是有类型这一概念的。
PHP中的类型分为三类:
(1)标量类型:boolean、integer、float、string
(2)复合类型:array、object
(3)特殊类型:resource、NULL
PHP中变量的值是存储在名为zval的结构体中的,
typedef struct _zval_struct zval;
...
struct _zval_struct {
/* Variable information */
zvalue_value value; /* value 存储变量的值*/
zend_uint refcount__gc; 引用计数
zend_uchar type; /* active type */变量具体的类型
zend_uchar is_ref__gc; 是否为引用变量
};
其中type的值可以为:IS_NULL、IS_BOOL、IS_LONG、IS_DOUBLE、IS_STRING、IS_ARRAY、IS_OBJECT、IS_RESOURCE。
变量的实际值存储在zvalue_value的联合体中,定义如下:
typedef union _zvalue_value {
long lval; /* long value */
double dval; /* double value */
struct {
char *val;
int len;
} str;
HashTable *ht; /* hash table value */
zend_object_value obj;
} zvalue_value;
从中我们也可以发现,php记录了string类型变量的长度,因此strlen可以在常数时间内获得字符串的长度。
数组类型的变量是存储在hashtable中的,
对象类型的变量使用了一种名为zend_object_value的结构体来存储,
typedef struct _zend_object_value {
zend_object_handle handle; // unsigned int类型,EG(objects_store).object_buckets的索引
zend_object_handlers *handlers;
} zend_object_value;
- PHP语法中的变量
- php中的SERVER变量
- php中的SERVER变量
- php中的SERVER变量
- php中的SERVER变量
- php中的SERVER变量
- php中的SERVER变量
- php中的SERVER变量
- PHP 中的变量
- php中的SERVER变量
- php中的SERVER变量
- php中的SERVER变量
- php中的变量
- php中的变量函数
- php中的静态变量
- PHP中的变量
- PHP中的可变变量
- php中的变量详解
- 解压*UC*.rar文件,压缩文件夹命令
- BOFC、BOF与BOVW
- OpenWRT查看CPU,RAM,Flash信息参数
- 免费的XMind 思维导图软件
- JAVA 异常 throwable exception error throws throw
- PHP中的变量
- 浅谈HTTP中Get与Post的区别
- webshell另类提权新姿势-php本地猜解MYSQL
- 读写锁pthread_rwlock_t的使用
- Android:使用ViewPager实现左右滑动切换图片 (简单版)
- JS邮箱验证
- numpy使用过程中小函数记录
- iOS 中的事件处理
- 日期处理类