我已经开始使用 PHP 中的 OO 编程来构建一些应用程序,但是我不确定我是否按照标准方式进行操作。

这是一个例子,如果我有一个书本课

    class book{

            private $name;
            private $id;
            private $isbn;
    }

有两种情况,一种,我想在我的数据库中添加一本全新的书......

我应该 a) 在我的新类(class)中使用一个函数来创建新书...即。
    $book = new book;

    $book->addAsNew($name, $isbn);

或者我应该 B) 有一个完全独立于添加新书的类的功能?

其次..在打开我的书课时,我应该有 A) 一个构造函数
    function __construct( $bookId ){

            //Call mysql DB and set $name and $isbn var based on $bookId

    }

    ...

    $book = new book( $bookId );

我应该 b) 有一个单独的功能..
    class book{

            private $name;
            private $id;
            private $isbn;

            public initiated = 0;

            function initiate( $bookId ){

                    //Load $name and $isbn from DB based on $bookId

                    $initiated = 1;
            }
    }

    ...

    $book = new book;

    $book = initiate( $bookId );

大多数程序员会这样做吗?还是主要由程序员自行决定?

最佳答案

您也可以向构造函数添加参数,因此您可以编写

book = new Book($name, $isbn).

但在这种情况下,我会选择像您一样拥有一个具有单独属性的类,并创建一个单独的工厂类或函数来实例化 book 对象。

B 也一样。不要把数据库查询放在这个类中。创建一个单独的 BookData 对象,它可以充当工厂。它可以查询数据库并返回图书对象。当然,如果你觉得一个工厂类过于复杂,你也可以创建一个函数,但是嘿,你想要去 OO。 ;-)

关于PHP5 面向对象编程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6164960/

10-11 22:10
查看更多