如何使用另一个文件中的PHP类?

php
2022-08-30 10:03:55

假设我有两个文件类.php页面.php

类.php

<?php 
    class IUarts {
        function __construct() {
            $this->data = get_data('mydata');
        }
    }
?>

这是一个非常基本的例子,但假设我想使用:

$vars = new IUarts(); 
print($vars->data);

在我的页面中.php文件;我该怎么做?如果我这样做,它会对我大喊大叫并给我include(LIB.'/class.php');Fatal error: Cannot redeclare class IUarts in /dir/class.php on line 4


答案 1

您可以使用包含/include_once要求/require_once

require_once('class.php');

或者,通过将page.php

<?php 
function my_autoloader($class) {
    include 'classes/' . $class . '.class.php';
}

spl_autoload_register('my_autoloader');

$vars = new IUarts(); 
print($vars->data);    
?>

它还可以在lib中添加该函数,该函数包含在每个文件(如.)上。__autoloadutils.php

还有这篇文章有一个很好的和不同的方法。

高效的 PHP 自动加载和命名策略


答案 2

在本例中,您似乎已经将文件包含在某个位置。但是对于类文件,你应该真正“包含”它们,以避免这种事情;如果文件已经存在,则不会包含该文件。(您通常应该使用 ,而不是 ,区别在于,如果文件不存在,则会导致致命错误,而不仅仅是发出警告。require_oncerequire[_once]include[_once]require


推荐