我有两门课如下所示
<?php
class firstClass extends Thread {
public $Title;
public function __construct(){
$this->Vita = "h"; //code with this line works
$this->Vita = array();//If I define $this->Vita as an array, the variable from secondclass does not load into this variable.
}//construct
public function run(){}
public function function1(){
$thread = new secondClass();
$thread->start();
$this->Vita[] = $thread->var1; // this line does not works. I cannot push into array
//$this->Vita = $thread->var1; this line works
print_r($this->Vita);
}//function1
}//class first
class secondClass extends firstClass {
public $var1;
public function __construct(){}
public function run(){
$this->var1 = "Something";
}//run
}//class fetchLink
$firstclassObject = new firstClass;
$firstclassObject->function1();
?> 正如您所看到的,我希望将$var1从第二个类传递给一个函数到第一个类。我接收到二等的$var1到第一类,但是当Vita是类型数组时,我不能将它推到$this->Vita变量中。如果Vita不是数组,它可以正常工作。
有什么建议吗?
发布于 2014-11-18 06:41:03
我可以设法解决这个问题。在扩展Thread的类中,似乎不支持修改数组的内容。
因此,我构建了另一个类,它不会在其他类之上扩展Thread,如下所示:
<?php
class main {
public $arry = array();
function one(){
$thread = new secondClass();
$thread->start();
$arry[] = $thread->Vita;
print_r($arry);
}//function one
}//class main
$mainobj = new main;
$mainobj->one();
class firstClass extends Thread {
public $Title;
public function __construct(){
$this->Vita = "h"; //code with this line works
}//construct
public function run(){}
public function function1(){
}//function1
}//class first
class secondClass extends firstClass {
public $var1;
public function __construct(){}
public function run(){
$this->var1 = "HHHHHH";
$this->Vita = $this->var1;
}//run
}//class fetchLink
$firstclassObject = new firstClass;
$firstclassObject->function1();
?> 我将外部clas中的踏板调用为main,并从线程接收值。这样就行了。
https://stackoverflow.com/questions/26975709
复制相似问题