最近几天,我都尝试过在线搜索此问题,但没有好运。考虑以下。我有4个文件-
sub.php
<?php
class sub extends main {
function __construct() {
parent::__construct();
echo "constructor in sub<br>";
}
}
trait.php
<?php
trait t1 {
function tProcess() {
echo "in tprocess in trait<br>";
}
}
main1.php
<?php
error_reporting(E_ALL);
ini_set('display_errors', true);
require_once 'sub.php';
require_once 'trait.php';
class main {
function __construct() {
echo "constructor in main<br>";
}
function process() {
echo "doing something in main<br>";
}
}
$t = new sub();
$t->process();
和main2.php
<?php
error_reporting(E_ALL);
ini_set('display_errors', true);
require_once 'sub.php';
require_once 'trait.php';
class main {
use t1;
function __construct() {
echo "constructor in main<br>";
}
function process() {
echo "doing something in main<br>";
}
}
$t = new sub();
$t->process();
main1正常工作,但是main2给我一个致命错误:找不到类'main'错误。仅包括特征就改变了文件包含的工作方式。任何有关这里发生的事情的指针/建议都值得赞赏。
是的,这只是一个包含订购的问题。这是人们使用自动装带器的众多原因之一。
<?php
error_reporting(E_ALL);
ini_set('display_errors', true);
require_once 'trait.php';
class main {
use t1;
function __construct() {
echo "constructor in main<br>";
}
function process() {
echo "doing something in main<br>";
}
}
require_once 'sub.php';
$t = new sub();
$t->process();