• 技术文章 >php教程 >php手册

    第十五节--Zend引擎的发展 -- Classes and Objects in PHP5 [15

    2016-06-13 10:02:42原创298
    /*
    +-------------------------------------------------------------------------------+
    | = 本文为Haohappy读<>
    | = 中Classes and Objects一章的笔记
    | = 翻译为主+个人心得
    | = 为避免可能发生的不必要的麻烦请勿转载,谢谢
    | = 欢迎批评指正,希望和所有PHP爱好者共同进步!
    +-------------------------------------------------------------------------------+
    */
    第十五节--Zend引擎的发展
    本章的最后一节,Zeev讨论了Zend引擎带来的对象模型,特别提到它与PHP的前几个版本中的模型有什么不同.
    当1997年夏天,我们开发出PHP3, 我们没有计划要使PHP具备面向对象的能力. 当时没有任何与类和对象有关的想法. PHP3是一个纯粹面向过程的语言. 但是,在1997.8.27的晚上PHP3 alpha版中增加了对类的支持. 增加一个新特性给PHP,当时仅需要极少的讨论,因为当时探索PHP的人太少. 于是从1997年八月起, PHP迈出了走向面向对象编程语言的第一步.
    确实,这只是第一步. 因为在这个设计中只有极少的相关的想法,对于对象的支持不够强大. 这个版本中使用对象仅是访问数组的一个很酷的方法而已. 取代使用$foo[“bar”],你可以使用看起来更漂亮的$foo->bar. 面向对象方法的主要的优势是通过成员函数或方法来储存功能. 例子6.18中显示了一个典型的代码块. 但是它和例6.19中的做法其实并没有太大不同.
    Listing 6.18 PHP 3 object-oriented programming PHP3中的面向对象编程
    class Example
    {
    var $value = "some value";
    function PrintValue()
    {
    print $this->value;
    }
    }
    $obj = new Example();
    $obj->PrintValue();
    ?>
    Listing 6.19 PHP 3 structural programming PHP3 PHP3中的结构化编程
    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);
    ?>
    以上我们在类中写上两行代码,或者显示地传递数组给函数. 但考虑到PHP3中这两种选择并没有任何不同,我们仍然可以仅把对象模型当成一种”语法上的粉饰”来访问数组.
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:将MySQL迁移到Microsoft SQL Server 2000 (二)-数据库相关-PHP教程 下一篇:王森:程序设计师忏悔录
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【腾讯云】年中优惠,「专享618元」优惠券!• php-mysql 问题笔记一在命令行中可以执行的sql语句,无法从php页面页面执行!,php-mysqlsql• 遵循PSR-4的自动加载,遵循PSR-4加载• 浅谈使用 PHP 进行手机 APP 开发(API 接口开发),appapi• php操作xml• 实现在同一方法中获取当前方法中新赋值的session值解决方法
    1/1

    PHP中文网