PHP的 - 无法从线程访问全局变量?(php - can't access global

2019-10-24 01:08发布

我想这是一个具体的问题,但由于某些原因,当我创建一个线程是这样的:

require_once(__DIR__.'/myotherfile.php');
class StreamBufferInput extends Thread {
    public function run(){
            global $max_buffer_size;
            global $data_source;    
            echo "DATA:" . $max_buffer_size;
            ...
    }
}

myotherfile.php中有声明这两个变量(他们可以从其他类访问,但我的echo在这里声明打印DATA:别的什么都没有我找不到太多的班内做全局变量,但我有一个全球性的声明这样我在其他类之一的功能,并能正常工作。

编辑:这是我如何启动线程。

$stream = new StreamBufferInput();
$stream->start();

Answer 1:

这是不可能在PHP的时刻。 你不能从线程本身内访问一个线程之外定义的全局范围内的变量。 但是,您可以从线程中执行调用,通过使用全球范围内Thread::globally ,我相信这可以帮助你实现你想要的。

你可以阅读一些更多关于这个这里



文章来源: php - can't access global variables from Thread?