【问题标题】:PHP class file link issues?PHP类文件链接问题?
【发布时间】:2012-09-22 05:55:08
【问题描述】:

我说过在我的网站中实现面向对象的设计。我正在使用php,遇到了一个问题。

按照我的倾向,我喜欢为每个文件定义一个类 - 仅此而已。通常,如果我没记错的话,在大多数语言中,如果类位于同一目录中,则可以调用它们,而不必显式链接到主程序(我可能是错的,或者是虚拟机独有的)。

现在,当我没有将类文件链接到主文件时,php 会发送错误。最重要的是,除非我定义到父类文件的链接,否则子类将不会执行。

我是否必须明确地将我的所有文件链接在一起?

这是我的代码的一些 sn-ps 详细信息:

<?php 



include_once 'VRC_Header2.php';
include_once 'UserService.php'; //Child class file of DB_MySQL.php
include_once 'DB_MySQL.php'; //Parent class
    //Without the two links above, this file will not execute

然后是子类:

class UserService extends DB_MySQL

{...

感谢任何帮助。

【问题讨论】:

    标签: php oop class include


    【解决方案1】:

    是的,在 PHP 中,您必须在实例化它们之前包含所有需要的类。

    避免这种情况的一种方法是使用自动加载:

    http://php.net/manual/en/language.oop5.autoload.php

    在大多数 PHP 框架(例如 Zend 框架)上使用。

    【讨论】:

    • 很高兴知道这一点。我也会检查一下 autoload(),这似乎是一种更实用的方法。
    【解决方案2】:

    您必须将所有类文件相互包含。否则其他页面将无法理解该类的存在位置。

    您可以使用namespace 概念。

    http://php.net/manual/en/language.namespaces.php

    但是在这你必须包含类文件。

    【讨论】:

      猜你喜欢
      • 2023-03-08
      • 1970-01-01
      • 2010-11-25
      • 1970-01-01
      • 2011-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多