Я полагаю, что это конкретный вопрос, но по какой-то причине, когда я создаю Thread следующим образом:
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
имеет эти две переменные, объявленные в нем (и к ним можно получить доступ из других классов, но здесь myotherfile.php
echo
оператор печатает DATA:
и больше ничего. Я не мог найти многого для выполнения глобальных переменных внутри классов, но у меня есть глобальный объявление как это в функции одного из моих других классов, и оно отлично работает.
EDIT: Вот как я начинаю тему.
$stream = new StreamBufferInput(); $stream->start();
На данный момент это невозможно в PHP. Вы не можете получить доступ к глобальным переменным сферы, определенным вне потока из самого потока. Однако вы можете выполнить вызов из потока, в глобальной области, используя Thread::globally
, я считаю, что это может помочь вам достичь того, чего вы хотите.
Вы можете прочитать еще об этом здесь