Zendエンジンの開発経緯(1)_PHPチュートリアル

WBOY
リリース: 2016-07-15 13:24:56
オリジナル
895 人が閲覧しました

Zeev は、Zend Engine によってもたらされたオブジェクト モデルについて、特にそれが PHP の以前のバージョンのモデルとどのように異なるのかについて説明しました。1997 年の夏に PHP 3 を開発したとき、オブジェクトの機能を PHP 指向にする計画はありませんでした。当時、PHP3 は純粋にプロセス指向の言語です。しかし、1997 年 8 月 27 日の夜にクラスのサポートが PHP に追加されました。 , 当時は PHP を研究する人が少なすぎたので、最小限の議論しか必要ありませんでした。そのため、1997 年 8 月から、PHP はオブジェクト指向プログラミング言語への第一歩を踏み出しました

確かに、これは最初の一歩にすぎません。この設計には関連するアイデアがほとんどなく、オブジェクトのサポートが十分に強力ではないため、$foo["bar"] を使用する代わりに、オブジェクトを使用することができます。 $foo->bar の方が見栄えがします。オブジェクト指向アプローチの主な利点は、メンバー関数またはメソッドを通じて機能を保存できることです。ただし、これは図 2 のアプローチと同じではありません。大きく異なります。

PHP 3 オブジェクト指向プログラミング PHP3 のオブジェクト指向プログラミング

<?php    class Example    {        var $value = "some value";        function PrintValue()        {            print $this->value;        }    }    $obj = new Example();    $obj->PrintValue(); ?>
ログイン後にコピー

PHP 3 構造化プログラミング PHP3 PHP3 の構造化プログラミング

<?php    function PrintValue($arr)    {        print $arr["value"];    }    function CreateExample()    {        $arr["value"] = "some value";        $arr["PrintValue"] = "PrintValue";        return $arr;    }    $arr = CreateExample();    //Use PHP's indirect reference    $arr["PrintValue"]($arr); ?>
ログイン後にコピー
私たちの上にクラスに 2 行のコードを記述するか、配列を関数に明示的に渡します。ただし、PHP3 ではこれら 2 つのオプションに違いがないことを考慮すると、アクセスするための「構文」「ホワイトウォッシュ」としてオブジェクト モデルを扱うことができます。

オブジェクト指向開発に PHP を使用したいと考えていた人、特にデザイン パターンを使用したいと考えていた人は、幸いなことに、当時 (PHP3 時代) オブジェクトに PHP を使用しようと考える人は多くはありませんでした。

PHP4 ではこの状況が変わり、PHP の異なる識別子がメモリ内の同じアドレスを指すことができるようになります。これは、同じ変数に名前を付けるために 2 つ以上の名前を使用できることを意味します。 、図 3 のようになります。

PHP 4 の参照 PHP 4 の参照


<?php    $a = 5;    //$b points to the same place in memory as $a $b与$a指向内存中同个地址    $b = &$a;    //we're changing $b, since $a is pointing to 改变$b,指向的地址改变    //the same place - it changes too $a指向的地址也改变    $b = 7;    //prints 7  输出7    print $a; ?> 
ログイン後にコピー
図 3

相互に指すオブジェクトのネットワークは、すべてのオブジェクト指向の基礎ですこの改善は非常に重要です。参照により、より強力なオブジェクト指向アプリケーションを作成できるようになりますが、PHP はオブジェクトと他の種類のデータを同じように扱うため、開発者にとっては大きなメリットとなります。実際のアプリケーションを構築したい場合、アプリケーションは WTMA (Way Too Many Ampersands) 症候群に悩まされることになります。サンプル画像 4.

1 を見れば理解できるでしょう。

http://www.bkjia.com/PHPjc/446717.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/446717.html技術記事 Zeev は、Zend Engine によってもたらされたオブジェクト モデルについて、特にそれが PHP の以前のバージョンのモデルとどのように異なるのかについて説明しました。1997 年の夏に PHP 3 を開発したとき、PHP を作成する計画はありませんでした...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!