[英]How to use a PHP class from another file?
假設我有兩個文件class.php和page.php
類.php
<?php
class IUarts {
function __construct() {
$this->data = get_data('mydata');
}
}
?>
這是一個非常基本的例子,但假設我想使用:
$vars = new IUarts();
print($vars->data);
在我的 page.php 文件中; 我該怎么做? 如果我include(LIB.'/class.php');
它對我大喊大叫並給了我Fatal error: Cannot redeclare class IUarts in /dir/class.php on line 4
您可以使用include
/ include_once
或require
/ 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);
?>
它還可以在包含在每個文件(如utils.php
中的庫中添加__autoload
函數。
還有這篇文章有一個很好的和不同的方法。
在這種情況下,您似乎已經在某處包含了該文件。 但是對於類文件,你真的應該使用require_once
“包含”它們來避免這種事情; 如果已經包含該文件,它將不會包含該文件。 (並且您通常應該使用require[_once]
,而不是include[_once]
,不同之處在於,如果文件不存在, require
將導致致命錯誤,而不僅僅是發出警告。)
使用include_once
代替。
這個錯誤意味着你已經包含了這個文件。
include_once(LIB.'/class.php');
使用include("class.classname.php");
並且類應該使用<?php //code ?> not <? //code ?>
<?php //code ?> not <? //code ?>
采用
require_once(__DIR__.'/_path/_of/_filename.php');
這也將有助於從不同文件夾導入文件。 嘗試extends
方法來繼承該文件中的類並重用這些函數
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.