2

我有一个index.php从其他 php 文件加载页面的片段。在顶部index.php我有所有的require_once语句,包括处理数据库连接的 PHP 类,我还实例化了该类的一个对象:

<?php 
    require_once 'libs/DatabaseHandler.php';

    $dbh = new DatabaseHandler('localhost', 'root', '*******', 'pride2012');

    require_once 'pages/01_includes.php';
    require_once 'pages/02_menu.php';
    require_once 'pages/03_slider.php';
    require_once 'pages/04_news.php';   
?> 

使用 db 管理类的页面位是04_news.php,在加载之前构造对象是否足以04_news.php确保在数据库相关操作开始之前对象存在?

4

3 回答 3

2

如果它是一个对象并且它是DatabaseHandler的一个实例,您可以尝试该对象是否退出。

http://php.net/manual/en/function.is-object.php

http://php.net/manual/en/internals2.opcodes.instanceof.php

于 2012-06-04T15:19:27.587 回答
2

在操作之前定义对象就足够了。

或者,您可以根据需要使用内置__autoload( )方法动态加载类。

查看PHP.net: Autoloading Classes了解更多信息。

于 2012-06-04T15:21:06.130 回答
0

如果您确定 04_news.php 永远不会被单独调用,也就是不会被 index.php 调用,那就足够了。

您还可以将 DatabaseHandler 实现为单例http://en.wikipedia.org/wiki/Singleton_pattern

于 2012-06-04T15:22:49.093 回答