Почему это работает? Я думал, что переменные будут видны только в пределах области видимости ... Или это метод области видимости?
1) В идеале: $ variable-name было бы определено первым шагом с помощью foreach ... но как?
2) почему $ variable определено в предложении if и доступно во всем блоке foreach?
3) в PHPStorm I. получить ошибку компиляции, но код работает ...
ArrayObject __construct:
// read JSON
foreach ($jsonIterator as $key => $val) {
if ($jsonIterator->getDepth()===0){
$variable = new Preguntas_Educacion_V1($key);
$this->offsetSet($variable->getColumn(),$variable);
} else if ($jsonIterator->getDepth()===1){
//Reflection!!! call setter dynamically by Val
$function="set".ucfirst($key);
$variable->$function($val);
} else if ($jsonIterator->getDepth()===2){
//Respuestas array
}
$counter++;
}
unset()
или не установлен равным нулю), даже если выполняется другое условие. Если вы хотите прочитать об объемах, это хорошая тема для этого. - person Qirel   schedule 17.04.2017