包含时找不到php类

时间:2011-02-14 14:33:53

标签: php

我在php中有一个名为“SEO_URL”的课程。在那个班级的某个点上我有这个

$class_name = "cPath_SEO_URL";
return $class_name::href(); 

我得到了

Fatal error: Class 'cPath_SEO_URL' not found in
...\includes\classes\seo.class.php on line 52

事情是我已将该课程列入SEO_URL

include_once(/path/to/my/class);
class SEO_URL{

}

我得到了那个错误。

然而,当我在类SEO_URL之上硬编码类时,它的工作原理。所以这很有效。

class cPath_SEO_URL{
    function cPath_SEO_URL(){}
    function href() { return "CPathHref"; }
}
class SEO_URL{
...
       $class_name = "cPath_SEO_URL";
       return $class_name::href(); 
...
}

这不是

include_once(/path/to/my/class);
class SEO_URL{
...
       $class_name = "cPath_SEO_URL";
       return $class_name::href(); 
...
}

我在oscommerce中尝试这个。

为什么?

2 个答案:

答案 0 :(得分:24)

好的,你不会相信这是什么问题。

我习惯打开和关闭这样的php文件

<?
   ...
?>

<?php

?>

并且类文件没有<?php .. ?>标记,但是<? ... ?>标记。我想我现在所处的环境现在只需要<?php而不是<?

它会加载类但不会将其解释为php。

答案 1 :(得分:1)

$class_name = "cPath_SEO_URL";
$test = new $class_name();
return $test::href();

你正在对一个实例进行静态调用。这没有意义 相反,你会想做

$class_name = "cPath_SEO_URL";
return $class_name::href();