如何在执行操作之前确保对象存在

时间:2012-06-04 15:16:40

标签: php oop class

我有一个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加载之前构造对象,以确保在数据库相关操作开始之前对象存在?

3 个答案:

答案 0 :(得分:2)

如果对象是对象并且它是DatabaseHandler的实例,则可以尝试该对象是否存在。

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

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

答案 1 :(得分:2)

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

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

请查看PHP.net: Autoloading Classes了解详情。

答案 2 :(得分:0)

如果你确定04_news.php从未被单独调用过,也就是没有被index.php调用,那就足够了。

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