PHP变量名、变量值、类型

PHP变量名、变量值、类型,第1张

变量名 =》 zval

变量值 =》zend_value

问题:

引用计数

变量传递,变量赋值

变量的基础结构

变量值:zend_value 

typedef union _zend_value {

  zend_long        lval;            / long value /

  double            dval;            / double value /

  zend_refcounted  counted;

  zend_string      str;

  zend_array      arr;

  zend_object      obj;

  zend_resource    res;

  zend_reference  ref;

  zend_ast_ref    ast;

  zval            zv;

  void            ptr;

  zend_class_entry ce;

  zend_function    func;

  struct {

      uint32_t w1;

      uint32_t w2;

  } ww;

} zend_value;

变量名:_zval

typedef struct _zval_struct    zval;

struct _zval_struct {

  zend_value        value;        / value /

  union {

      struct {

        ZEND_ENDIAN_LOHI_4(

            zend_uchar    type,          / active type /

            zend_uchar    type_flags,

            zend_uchar    const_flags,

            zend_uchar    reserved)        / call info for EX(This) /

      } v;

      uint32_t type_info;

  } u1;

  union {

      uint32_t    var_flags;

      uint32_t    next;                / hash collision chain /

      uint32_t    cache_slot;          / literal cache slot /

      uint32_t    lineno;              / line number (for ast nodes) /

      uint32_t    num_args;            / arguments number for EX(This) /

      uint32_t    fe_pos;              / foreach position /

      uint32_t    fe_iter_idx;          / foreach iterator index /

  } u2;

};

变量类型type

/ regular data types /

#define IS_UNDEF              0

#define IS_NULL                  1

#define IS_FALSE              2

#define IS_TRUE                  3

#define IS_LONG                  4

#define IS_DOUBLE              5

#define IS_STRING              6

#define IS_ARRAY              7

#define IS_OBJECT              8

#define IS_RESOURCE                9

#define IS_REFERENCE            10

/ constant expressions /

#define IS_CONSTANT                11

#define IS_CONSTANT_AST            12

/ fake types /

#define _IS_BOOL              13

#define IS_CALLABLE                14

/ internal types /

#define IS_INDIRECT                15

#define IS_PTR                17

true 和 flase 没有zend_value 结构, 直接通过type来区分,zend_long和double的变量指直接存储在_zend_value中,不需要额外的value指针。

DATETIME : 混合日期和时间值

TIMESTAMP : 混合日期和时间值,时间戳

TIME :时间值或持续时间

YEAR :年份值

CHAR :定长字符串

VARCHAR: 变长字符串

TINYBLOB : 不超过255个字符的二进制字符串

BLOB :二进制形式的长文本数据

MEDIUMBLOB : 0 - 16777215字节 二进制形式的中等长度文本数据

LONGBLOB : 0 - 4294967295字节 二进制形式的极大文本数据

TINYTEXT : 0 - 255字节 短文本字符串

TEXT : 0 - 65535字节 长文本数据文本

MEDIUMTEXT : 0 - 16777215字节 中等长度文本数据

LONGTEXT : 0 - 4294967295字节 极大文本数据

ENUM : 枚举;列可赋予某个枚举成员

SET :集合;列可赋予多个集合成员

BINARY :类似Char的二进制存储,特点是插入定长不足补0

VARBINARY : 类似VarChar的变长二进制存储,特点是定长不补0

BIT :无符号[0,255],有符号[-128,127]

BOOLEAN : 布尔型,功能等同于微整型TINYTINT

GEOMETRY :层次结构的根类

POINT :点。指的是代表坐标空间中单个位置的几何类

LINESTRING :具有点之间线性内插特性的Curve

POLYGON :代表多边几何对象的平面Surface

MULTIPOINT :一种由Point元素构成的几何对象集合

MULTILINESTRING : 是一种由 LineString元素构成的MultiCurve几何对象集合

MULTIPOLYGON:是一种由Polygon元素构成的几何对象集合

参考资料:

mysql 官方文档(网站)

1、输出。

Python: print 默认换行,不换行要加逗号。

PHP: echo 可以输出多个变量;print ()只输出一个变量,且成功返回值为1,失败为0;print_r() 只输出数组;die() 先输出,后关机;printf() 格式化输出字符串;var_dump()可以判断一个变量的类型与长度,并输出变量的数。

2、数据类型。

PHP:七个数据类型:String,Integer,Float,Boolean,Array,Object,NULL

Python:五个标准的数据类型:Number,String,List,Tuple,Dictionary 其中包括Numberint,long,float,complex

3、访问权限。

PHP:三种访问权限,由高到低为public,protected,private

Python: _foo代表不能直接访问的类属性,需要通过类提供的接口访问;__foo代表类的私有成员;__foo__特殊方法专用的标识

4、定义变量和方法。

PHP: 弱类型语言,用$定义变量,一般情况下变量引用变量时也要带着$(区别于Java), 在类中定义变量时还要加var ,定义方法时 function test (){} 要用function声明。

Python:弱类型语言,定义变量时直接写,除了访问权限修饰符不需要加别的。定义方法时 def __init__(self,name): 要用def声明,self是必须要加的常量,代表该类的对象,方法体不用{}。

以上就是关于PHP变量名、变量值、类型全部的内容,包括:PHP变量名、变量值、类型、PHP网站建设mysql数据库,以下字符是什么中文意思呢、python与php的区别 专家解析python与php的四大区别等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10194522.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存