尽管出现错误“ Class'Example'not found”(示例为某些自定义编写的类),但我正在尝试在Thread中执行函数。当正常执行函数(不在线程中)时,一切正常。
我的猜测:
在函数内部,我称之为“ call_user_func_array”,该函数正在执行使用自定义类的另一个函数。可能是线程无法访问此“外部”信息。
如果是,那么有关如何解决此问题的任何建议?
<?php
$task = new class extends Thread {
public $code;
public $data;
public function run() {
$sample_class = new \SirJoe\Sample_Class();
$this->data = (array) get_all_data($sample_class, $this->code);
}
};
$task->code = $media->getCode();
$task->start();
$task->join();
function get_all_data($sample_class, $code) {
// key of end cursor
$data = call_user_func_array(
array($sample_class, 'getMediaLikesByCode'),
array($code)
);
return $data;
}
在Sample_Class内部:
public function getMediaLikesByCode($code, $maxId = null) {
$likeArray(fetchLikes($code, $maxId));
$like = Like::create($likeArray['node']);
return $data;
}
喜欢的班级:
<?php
namespace SirJoe\Model;
class Like extends AbstractModel
{
/**
* @var
*/
protected $id;
/**
* @var Account
*/
protected $username;
/**
* @return mixed
*/
public function getId()
{
return $this->id;
}
/**
* @return mixed
*/
public function getUserName()
{
return $this->username;
}
/**
* @param $value
* @param $prop
*/
protected function initPropertiesCustom($value, $prop)
{
switch ($prop) {
case 'id':
$this->id = $value;
break;
case 'username':
$this->username = $value;
break;
}
}
}
未捕获的错误:在lorem-ipsum.php:999中找不到类'SirJoe \ Model \ Like'