【发布时间】:2012-03-31 06:21:46
【问题描述】:
我正在尝试在 Class_A 的函数之一中使用 Class_B 函数。但是很多 Class_B 的函数都包含$this,这会导致问题。这两个都是类(当然每个类都在自己的文件中):
class Class_A
{
function hello()
{
require('class_b.php');
echo 'Hello ' . Class_B::person();
}
function bye()
{
require('class_b.php');
echo 'Bye ' . Class_B::person();
}
}
class Class_B
{
function person()
{
// various operations and variables
echo $this->get_user($id);
}
}
当我运行 Class_A 文件时,我得到 Call to undefined method Class_A::person() in (...),因为我认为 $this 值在我实例化 Class_A 类时已更改。它会否决 Class_B 值。我怎样才能阻止这种情况?
另外,还有一个问题:如何从 Class_A 中的每个函数访问 Class_B?我不想重新声明课程。我需要这样做吗:
class Class_A
{
function function1()
{
require('class_b.php');
$class_b = new Class_B();
// code
}
function function2()
{
require('class_b.php');
$class_b = new Class_B();
// code
}
}
或者我需要使用构造函数还是什么?
【问题讨论】: