假设我有两个文件class.php和page.php
class.php
<?php
class IUarts {
function __construct() {
$this->data = get_data('mydata');
}
}
?>
Run Code Online (Sandbox Code Playgroud)
这是一个非常有用的例子,但是我想说我想用:
$vars = new IUarts();
print($vars->data);`
Run Code Online (Sandbox Code Playgroud)
在我的page.php文件中; 我该怎么做呢?如果我这样做,include(LIB.'/class.php');就会对我大喊大叫并给我Fatal error: Cannot redeclare class IUarts in /dir/class.php on line 4
Mar*_*val 62
你可以使用include/ include_once或require/require_once
require_once('class.php');
Run Code Online (Sandbox Code Playgroud)
或者,
通过添加来使用自动加载page.php
<?php
function __autoload($class_name) {
require_once $class_name . '.php';
}
$vars = new IUarts();
print($vars->data);
?>
Run Code Online (Sandbox Code Playgroud)
它还可以__autoload在包含在每个文件中的库中添加该函数utils.php.
这篇文章也有一个很好的和不同的方法.
在这种情况下,您似乎已经将文件包含在某处.但是对于类文件,你应该真正"包含"它们require_once以避免那种事情; 如果文件已经存在,它将不包括该文件.(并且你通常应该使用require[_once],而不是include[_once],require如果文件不存在会导致致命错误,而不是仅发出警告.)