我想在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 (...)
因爲我覺得當我實例化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
}
}
或者我需要使用構造函數還是其他?
這很好。我試圖編輯你的帖子來添加最後的'}',但它不讓我! – hohner