Задать вопрос
jone21
@jone21
Кратко не получится

Как создать глобальную переменную работающую между одинаковыми классами?

<?php

$arraw=array("Start");
class AsyncOperation extends Thread {

    public function __construct($arg) {
        $this->arg = $arg;
    }

    public function run() {
	global $arraw;
        if ($this->arg) {
            $sleep = mt_rand(1, 10);
            printf('%s: %s  -start -sleeps %d' . "\n", date("g:i:sa"), $this->arg, $sleep);
            sleep($sleep);
			$arraw[]=$this->arg;
            printf('%s: %s  -finish' . "\n", date("g:i:sa"), $this->arg);
        }
    }
}

// Create a array
$stack = array();

//Initiate Multiple Thread
foreach ( range("A", "D") as $i ) {
    $stack[] = new AsyncOperation($i);
}

// Start The Threads
foreach ( $stack as $t ) {
    $t->start();
}

?>


Как сделать что то типо такого ? чтобы созданные классы могли обращаться и переписывать один и тот же массив
  • Вопрос задан
  • 244 просмотра
Подписаться 3 Средний 4 комментария
Ответ пользователя Adik Izat К ответам на вопрос (3)
JaxAdam
@JaxAdam
Junior Full-Stack Developer
Вам следует почитать о наследованиях и свойствах.

Как решение предлагаю, создать родительский класс для таких классов и в нем хранить ваш $arraw в виде свойства.

Или же можно как-то "намудрить" с конструкторами, и передавать этот массив из класса в класс через __construct().
Передавать Создать $arraw в ClassOne(), потом передать ClassTwo(['arraw' => $classOneObject->arraw]) оттуда в класс 3,4,5 и так далее.
Ответ написан
Комментировать