如果我的类都在common.php中,我可以单独定义我的类吗

如果我的类都在common.php中,我可以单独定义我的类吗,php,class,object,Php,Class,Object,我想做以下工作: <?php session_start(); require_once "../includes/common.php"; $quoteShared = new quoteShared(); ?> common.php有: <?php require_once "../objects/quote/shared.php"; ... plus many others ?> 这给了我一个错误: 致命错误:未找到类“quoteShared”

我想做以下工作:

<?php

session_start();

require_once "../includes/common.php";

$quoteShared = new quoteShared();

?>

common.php有:

<?php
require_once "../objects/quote/shared.php";
... plus many others
?>

这给了我一个错误:

致命错误:未找到类“quoteShared”


我想将类单独定义到包含它们的位置,以便在不同的页面上使用所需的特定类。可以吗?

这是一个糟糕的设计策略,你应该看看这里:

是的。这是一种非常普遍的做法。似乎找不到“quoteShared”。这可能是因为它不是从shared.php加载的。仔细检查你的路径。嗯,好的,但是现在仔细检查一下。那么“include”“require”和“require_once”呢?我应该在我发布的示例代码块中使用哪一个?对于我只加载一次的类,我使用
require
。如果不确定,请使用一次
require\u
。阅读“.”。最好将所有类拆分到自定义文件中,而不要像下面给出的答案那样自动加载。请始终使用
require\u一次。就我个人而言,我喜欢像
require_once uu DIR_uu.'/../include/foo/bar/baz.class.php'这样的命名策略这是一个不错的策略,因为每个人都可以编写适合自己的代码。但是装载机系统是有用的,我同意。谢谢,但我不确定这是否适合我。我的很多类都是根据它们所在的文件夹结构命名的。我们有多个产品,每个产品有3种类型的类别,这取决于您所处的系统的哪个部分。所以我有一个名为“myaccountFootball”的类,它位于/class/myaccount/football.php中——这就是为什么我认为自动加载程序会失败!保留一个common.php就可以了……实际上,您的类命名有助于编写自定义自动加载程序(如果您通过spl注册它们,则可以编写几个)。无论如何,如果您使用的是PHP5.3+,您可以通过使用
\uuuuu DIR\uuuu
指定绝对路径,它表示文件所在的目录