--- index.xml.hotta 2017-04-27 05:46:17.000000000 +0900 +++ index.xml 2017-05-07 08:38:18.000000000 +0900 @@ -1,5 +1,7 @@ + + 変数の処理
@@ -17,13 +19,13 @@ - 前述の内容もう少し正確に言うと、PHPは高レベルの言語であり、緩い型付けにより変数は + 前述の内容もう少し正確に言うと、PHPは高水準言語であり、緩い型付けにより変数は エンジニアの好みに応じて暗黙に解釈され、実行時に必要な型に強制的に変換されます。 参照カウント法は、ある変数がユーザーのコードの中でもはや参照されなくなったことを エンジンが推測し、その変数に関連付けられた構造体を開放するという仕組みです。 - PHP内部の変数は、すべてzvalと呼ばれる1つの構造体で表現されています: + PHP内部の変数は、すべてzvalと呼ばれるひとつの構造体で表現されています。 - zval_valueは、1つの変数が持ちうるすべての型を表現可能な共用体です: + zval_valueは、ひとつの変数が持ちうるすべての型を表現可能な共用体です。 - この構造体により、ある変数はいずれか1つの型を持つことができ、そのデータは + この構造体により、ある変数はいずれかひとつの型を持つことができ、そのデータは zval_value共用体の中の適切なフィールドによって表現されている ことがわかります。zval自体に型や参照回数と、その変数がまだ参照 されているかどうかを示すフラグを持っています。 @@ -113,12 +115,11 @@ 上記の他にも、定数の配列や callable オブジェクトといった内部的な型を - 特定するための定数があるのですが、その利用法についてはこのドキュメントが - カバーする範囲を超えます。 + あらわす定数があるのですが、それらの利用法についてはこのドキュメントでは扱いません。 エンジンが公開しているマクロのうち、zval値で扱えるものを - 以下の表に示します: + 以下の表に示します。 @@ -394,7 +395,7 @@ - さらにハッカーが知っておくべき機能を2つだけ挙げるとすれば、 + さらにハッカーが知っておくべき機能をふたつだけ挙げるとすれば、 それはzval_copy_ctorzval_ptr_dtorでしょう。これらは エンジンにおける参照カウントメカニズムの基本です。重要なことは、通常の環境で zval_copy_ctorが呼ばれても、実際には何も起こらないことです。 @@ -467,7 +468,7 @@ 配列は HashTable 構造体に格納され、zval の型は IS_ARRAY となります。ここでは、 これらの構造体を変数として作成したり破壊したり操作したりする API 関数について - 記載していますが、Zend/zend_API.hにも記載があります。 + 説明します。これらの内容は Zend/zend_API.hでも確認できます。
@@ -834,9 +835,9 @@
- zend_hash_* functions のうちvoid* dataを受け付けるものは、 + zend_hash_* 関数のうちvoid* dataを受け付けるものは、 通常それを(void**) (すなわち(void**) &data)に - キャストすること。 + キャストしなければいけません。 HashTable の中を行き来しなければならない場合も少なくありません。 @@ -911,8 +912,8 @@ - 前述の関数は、HashTable内部を通常のループのように移動できる。 - たとえば以下のように使う: + 前述の関数は、HashTable内部を通常のループのように移動できます。 + たとえば以下のように使います。 内部移動以外にも、エンジンではハッシュテーブルのマージ、コピー、比較といった API を提供しています。ハッカーはこれらのどの概念にも精通して - いなければなりません。この中にはハッカーapplying - には当てはまらない(訳注:得意としない?)範疇の概念もあるかもしれませんが、 - 言い換えると、HashTable API の機能を使えばハッカーは - コールバック関数を渡してそれをHashTable中のすべてのエントリで実行 - させることが可能だということです。 + いなければなりません。 + 関数の適用 (apply) という概念にはなじみがない人もいるかもしれません。 + 要するにこれは、HashTable API の機能を使ってコールバック関数を渡して、 + HashTable中のすべてのエントリでそれを実行させる仕組みのことです。 コピー、マージ、ソート @@ -1005,7 +1005,7 @@
- Working with Objects + オブジェクトの扱い