【问题标题】:PHP - Can an object instance be used across multiple pages?PHP - 一个对象实例可以跨多个页面使用吗?
【发布时间】:2011-08-25 10:08:12
【问题描述】:

过去几年我一直在使用函数进行编程,但从未真正弄清楚使用对象的“价值”。

我的关键问题是:PHP 中实例化的对象能否跨多个页面使用,还是在页面关闭时与页面一起消失?

即使是教程的链接也很棒!

【问题讨论】:

  • 感谢 JohnP,您的参考非常棒!上次我检查 Orielly 时,都是关于 PHP4 的,我们都知道那个旧版本的问题 :)

标签: php oop model-view-controller


【解决方案1】:

PHP 具有“无共享”架构。对象在请求中无法生存。

【讨论】:

    【解决方案2】:

    该对象仅在加载到页面时才存在...包含、要求等。这是使用 MVC 设计模式完成的。

    我喜欢阅读“PHP Object-Oriented Solutions”。随书附有代码可以下载,而且例子足够真实,可以看到任何项目的范围。换句话说,“我喜欢它,因为我的大多数项目都会受益,但其中大多数仍然与营销相关,而不是非常大的应用程序等。

    我将这本书与学习 CodeIgniter 框架结合起来,并获得了与“@#$!@#$”一样多的“Yay”时刻。

    编辑: 那本书中的示例使用亚马逊类型的网站作为基础,并扩展了产品(作为摘要)与产品(书籍、DVD 等)的概念。主要对象将包含销售物品所需的所有功能/方法,但将物品的细节留给子类的工作。在示例中,Books 的子类需要页数。 DVD 的子类需要长度。

    总之,产品的父类必须存在于每个页面中,而为图书扩展它的方法只需要存在于图书特定页面上。 DVD 页面也是如此。这样做的好处是,如果应将杂志添加到站点,父类将正常工作。您只需要编写一个专门为杂志扩展父级的类。父类将保持不变。

    【讨论】:

      【解决方案3】:

      您通过 PHP 创建的任何内容将在页面完成服务后不复存在,除非您将其放入某种存储中。

      使用对象和 OOP 的优势在于,与仅使用大型程序文件相比,您的代码更易于维护。此外,坚持使用 MVC 框架还可以帮助您将项目分成不同的组件。

      网上有很多关于使用 MVC 的教程。

      【讨论】:

      • 感谢 JohnP。我知道有很多教程,包括 PHP 网站。不幸的是,到目前为止,我发现没有一个能够令人满意地回答这个问题。他们没有展示一个 5 页的网站如何值得使用 OOP 或 MVC。对我来说,到目前为止,我发现只拥有一个单独的函数文件并在需要时包含它更有意义。我可以理解 OOP 在 C++ 中的重要性,但在 PHP 中却不行。
      • 是这样的。如果你是唯一一个编写代码的人,并且项目不会增长,那么是的,MVC 的好处可能看起来不值得。但是,当更多的人开始研究它并且项目开始增长时,MVC 将支付红利。关键是它的扩展性很好
      【解决方案4】:

      是的,您需要在每个页面上创建它

      如果您想在所有页面中使用该对象。简单地创建为单独的页面,然后将其包含在顶部

      有关于对象的解释 http://journals.ecs.soton.ac.uk/java/tutorial/java/objects/object.html

      【讨论】:

        【解决方案5】:

        页面一结束它就会死掉,就像网络上的其他东西一样。使用对象的好处在于它们的可打包性和可重用性,而不是它们可以存在于多个页面加载中。

        【讨论】:

        • 那么,如果是这样的话,如果我只是有一个包含我的函数集合的公用文件并包含它,那不是一样吗?这样,我写的代码也更少了。
        • 当然,在非常基础的层面上,但在大型项目中并不真正可持续。
        猜你喜欢
        • 2019-09-27
        • 2011-11-13
        • 1970-01-01
        • 2019-10-22
        • 2012-12-13
        • 2023-02-09
        • 2014-08-11
        • 1970-01-01
        • 2022-01-15
        相关资源
        最近更新 更多