![](/img/trans.png)
[英]PHP7 pthreads3 woes : Unable to increment public property of Threaded class from within an instantiated Worker object
[英]PHP Access property of a class from within a class instantiated in the original class
我不確定如何用正確的術語來解釋這一點,所以也許一個例子是最好的方法...
$master = new MasterClass();
$master->doStuff();
class MasterClass {
var $a;
var $b;
var $c;
var $eventProccer;
function MasterClass()
{
$this->a = 1;
$this->eventProccer = new EventProcess();
}
function printCurrent()
{
echo '<br>'.$this->a.'<br>';
}
function doStuff()
{
$this->printCurrent();
$this->eventProccer->DoSomething();
$this->printCurrent();
}
}
class EventProcess {
function EventProcess() {}
function DoSomething()
{
// trying to access and change the parent class' a,b,c properties
}
}
我的問題是我不確定如何從EventProcess-> DoSomething()方法內訪問MasterClass的屬性? 我需要訪問,執行操作並更新屬性。 a,b,c屬性將是非常大的數組,並且在腳本執行期間將多次調用DoSomething()方法。 任何幫助或指針將不勝感激:)
在SO上已經對此進行了多次討論,每次都沒有這樣做的“本機”方法。 您必須將對MasterClass
實例的引用傳遞給子類。 在PHP5中:
$this->eventProccer = new EventProcess($this);
並將其存儲在子類中,如下所示:
class EventProcess
{
private $masterClass; // Reference to master class
function __construct($masterClass)
{
$this->masterClass = $masterClass;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.