1. php は弱い型付け言語なので、変数の型を明示的に指定する必要はありませんが、php 変数には次の 8 種類の変数 (3 つのカテゴリ) があります
a. スカラー型: ブール型。 、整数、浮動小数点(double)、文字列
b. 複合型: 配列、オブジェクト
c. 特殊な型: リソース、null
2.php は変数の格納構造を実装するために C 言語を使用します
typedef struct _zval_struct zval; ... struct _zval_struct { /* Variable information */ zvalue_value value; /*存储变量的值,是一个union类型*/ zend_uint refcount__gc;/*变量的引用计数,默认为1*/ zend_uchar type; /*变量的类型,为IS_NULL、IS_BOOL、IS_LONG、IS_DOUBLE、IS_STRING、IS_ARRAY、IS_OBJECT和IS_RESOURCE之一*/ zend_uchar is_ref__gc;/*表示是否为引用*/ };
b. 格納された変数 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;
ここでは、変数は同時に 1 つの型しか表現できないと考えて、構造体の代わりに Union を使用しています
:tipi オープンソース プロジェクト http://www .php-internals.com/book/?p=chapt03/03-01-00-variables- Structure
上記は、PHP 変数の原理を内容も含めて紹介したもので、PHP チュートリアルに興味のある友人に役立つことを願っています。