我在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中尝试这个。
为什么?
答案 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();