【发布时间】:2017-01-09 01:59:18
【问题描述】:
我绝对确定以前有人问过这个问题,但我在任何地方都找不到。
所以我有两节课。甲和乙
class classA
{
public $var1;
public $classbVar;
public function init()
{
// This is here because other script is run before it is called
// in the live code.
// it basically checks that the file exists. There is a reason for this.
if (file_exists('classB.php'))
{
require_once('classB.php');
}
else
{
echo "An error has occurred loading the second class.";
}
$this->var1 = "something";
$this->classbVar = new classB
echo $this->classbVar->doSomething();
}
}
在一个单独的文件中
class classB extends classA
{
public function doSomething()
{
echo $this->var1;
}
}
在第三个文件中,我正在调用 classA 并运行 init 函数。这不是真正的代码,但和我写的一样。
那么为什么这不起作用。如果我 VAR_DUMP 我得到 null.... 我做错了什么或误解了什么?
让我更清楚:
还有第三个文件调用 classA 如下;
require_once('classA.php')
$classA = new classA;
$classA->init();
对于任何混淆,我深表歉意,我在飞行中做了一点,因为我确信我在这里遗漏了一些简单的东西。当然,我尝试这样做的方式会以某种方式起作用。
【问题讨论】:
-
失败的具体代码是什么样的?
-
基本上这个....
require_once (classA.php); $classA = new classA(); $classA->init(); -
确切的代码超过 500 行,由于扩展无法正常工作,或者至少不像我预期的那样,它会绊倒。它也跨越 6 个文件,从开始到出现问题。到目前为止一切都很好,但这是我第一次玩扩展类,我是在程序上长大的,并且可以做得很好,但是类显然更好,将来更容易修改