在php中实现mysql时,使用面向对象方法而不是程序方法有显着差异吗?在php网站上关于mysqli_query
,(http://www.php.net/manual/en/mysqli.query.php),它提供了两者的示例,我只是想知道是否存在任何显着的性能差异,或者只知道何时使用它们。
答案 0 :(得分:3)
哪一个更好的答案是“它取决于”。与任何事物一样,有各种不同的方法,您还应该记住,使用对象的代码不一定是面向对象的,但仍然可以在程序上编写。同样,不使用对象的代码仍然可以模块化。
但我每次都会选择使用mysqli
课程。性能没有显着差异。您可能不会意识到使用DB类(如简化多态)的一些优点,因此我使用该类的唯一参数是我更喜欢语法。但是,我可能会建议您扩展或撰写它,而不是直接使用mysqli
。你只能在课堂上这样做。
class DB extends mysqli {
public function __construct() {
parent::__construct($_SERVER['DB_HOST'],
$_SERVER['DB_USER'], $_SERVER['DB_PASS']);
}
}
这是一个非常浅薄的例子。
我上面谈到的多态性的一个例子是这样的:
class User implements DAO {
private $db;
public function __construct(DB $db) {
$this->db = $db;
}
}
//Testing code is simplified compared to using it in production
class TestDB extends DB {}
new User(new TestDB);
new User(new DB);
顺便说一句,我明确地更喜欢PDO
而不是mysqli
答案 1 :(得分:0)
由于您是实习生,因此最好找出将来维护代码的人员。
答案 2 :(得分:-4)
不,没有区别。
但是你忽略了更重要的事情:在应用程序代码中不必使用原始的mysqi API函数,既不是OOP也不是程序。
PHP用户不知道一件事:API调用不打算按原样使用。它们必须包含在某种库中。没有它,mysqli只是后面的痛苦,它需要比旧的好mysql ext多2倍的代码。
因此,如果您正在使用这样的图层,那么它确实很重要,但如果使用过程或OOP编写它并不重要。
然而,这个图书馆应该以课堂的形式建造。没有其他办法。