13

私は何年も前から PHP 開発者ですが、PHP が舞台裏で変数とその型をどのように処理するかについては、1 つでも詳しく知りません。つまり、PHPでは-理論的には-同じ変数を使用して、整数、文字列、ブール値、配列を格納できます...など...

個人的には、このような「不十分にキャストされた」プログラミング方法は大嫌いですが、私が尋ねたように、PHP が変数とその型をどのように格納および管理できるのか疑問に思っています。インタープリターが背後で C 変数を作成して処理していると思いますが、その方法がわかりません。

ありがとうございました。

4

2 に答える 2

12

舞台裏では、PHP 変数は「zval」構造に格納されます。これは、変数が格納できるすべてのタイプのデータ (たとえば、long、double、文字列ポインタ/長さ、オブジェクト ポインタなど) の和集合で構成されます。 ...)、およびそれがどのタイプであるかを示し、参照カウントを追跡するユニオンの外側のいくつかの他のフィールド。

これについては、次の場所でさらに議論されています。

http://devzone.zend.com/317/extension-writing-part-ii-parameters-arrays-and-zvals/

于 2012-05-02T16:56:01.850 に答える
-1

私の記憶が正しければ、PHP は、PHP の変数ごとにメモリ内のいくつかの変数を開始します。

$test = 0;

翻訳すると...

int test = 0;
float test = 0;
char test = 0;
bool test = false;
pointer test = null;
...
于 2012-05-02T16:57:12.963 に答える