usleep()
с периодической проверкой статуса $proc_status = proc_get_status($ph);
if( !$proc_status['running'] ) { // завершился }.
stream_get_contents($pipes[1])
. Не работает почему-то. Отрубается только по timeout --killafter 5 10, через которую запускаю основное приложение. Вряд ли с while (!feof($pipes[1])) {...};
будет иначе. x := (y := z)
в паскале, не работает конструкция mov ax, (mov bx, cx)
в ассемблере. Это же не значит, что := и mov не операторы. Нет, у оператора присваивания есть результат - присвоенное значениеРезультат операции присваивания - это занесение какого-то значения в переменную. А цепочки присваиваний - это уже побочный синтаксический сахар, который не во всех языках есть.
Здесь у операции $y = 5 результат 5, который присваивается $x.А здесь
$arr = ['a' => 1]
у операции 'a' => 1 результат 1, который присваивается по адресу $arr['a'].=>
выполняются пошагово. Например, если здесь ['a' => divto(0), 'b' => divto(1)]
во время выполнения функция divto(0) бросит ошибку, то до divto(1) очередь не дойдет. Кто такое сказал?
let animal = {
name: 'animal',
eat: function (food) {
console.log(this.name + ' eats ' + food);
}
}
let rabbit = {
__proto__: animal,
name: 'rabbit',
eat: function() {
this.__proto__.eat('carrot');
}
}
rabbit.eat(); // "animal eats carrot"
this.__proto__.eat.call(this, 'carrot');
let animal = {
name: 'animal',
eat: function (food) {
console.log(this.name + ' eats ' + food);
}
}
let rabbit = {
__proto__: animal,
name: 'rabbit',
eat: function() {
this.__proto__.eat.call(this, 'carrot');
}
}
let whiteRabbit = {
__proto__: rabbit,
name: 'white rabbit',
eat: function() {
this.__proto__.eat.call(this);
}
}
whiteRabbit.eat(); // RangeError: Maximum call stack size exceeded