ホームページ  >  記事  >  バックエンド開発  >  PHP 変数を Zend に保存する方法 kernel_PHP チュートリアル

PHP 変数を Zend に保存する方法 kernel_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 09:45:04951ブラウズ

PHP変数がzendカーネルに保存される方法

PHP の変数は、弱い型指定の言語であるため、あらゆるデータ型を保存できます。ただし、PHP は C 言語で書かれており、各変数の型は固定されています (型変換を強制することはできますが、zend エンジンでは問題が発生する可能性があります)。 、それは、変数はどのような型を保存することができますか?
zend/zend.h ヘッダー ファイルには、次の構造があります:

リーリー

zval 構造は、一般的に使用される PHP 変数をカーネル内で表現する方法です。 zval 構造体には、次の 4 つのメンバー変数が表示されます。

リーリー

zval 構造体の value メンバー変数は zvalue_value 共用体です。この共用体のおかげで、PHP はあらゆる構造体の型を維持できます。 zvalue_value ユニオンのメンバー変数からわかるように、異なる型は異なるメンバー変数に保存されるため、PHP 変数には任意のデータ型を格納できます。たとえば、変数が整数型の場合は value の lval メンバー変数に保存され、変数の型が文字列の場合は value の str メンバー変数に保存されます。

PHP 変数を Zend に保存する方法 kernel_PHP チュートリアル
もう 1 つの質問は、zend エンジンはこの変数が保存する型をどのようにして知るのでしょうか? zval 構造体に type メンバー変数があることに気付きました。このメンバー変数は PHP 変数の型を保存するためのものです。
Zend エンジンは 8 つの変数タイプを定義します:

リーリー

各マクロ定義は、PHP 言語層の型に対応します。たとえば、zval の type メンバー変数が IS_STRING (zval.type==IS_STRING) と等しい場合、この変数の型は文字列型であることを意味します。

www.bkjia.com本当http://www.bkjia.com/PHPjc/1043340.html技術記事 PHP 変数が zend カーネルに格納される方法 PHP の変数は、弱い型指定の言語であるため、あらゆるデータ型を保存できます。しかし、phpはC言語で書かれており、強く型付けされた言語です...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。