У меня возникли проблемы с доступом к свойствам переданного объекта в одной из моих функций. Я знаю, что нет проблем с определением объекта или с тем, как я получаю доступ к свойствам, потому что я могу сделать это в другом месте просто отлично.
Для справки:
$officials_array
это массив Official
объекты.
$division
а также division_scope
являются свойствами этого объекта.
$modal_counter
это просто счетчик (я упростил код до того, что вызывает у меня проблемы, так что, как вы можете видеть, счетчик фактически не изменен в этом коде).
Вот код:
$modal_counter = 0;
function echoOfficial($offical, $modal_counter) {
echo "Scope: " . $official->division_scope . " Name: " . $official->division;
return $modal_counter;
}
echo "<h2>National</h2>";
foreach ($officials_array as $official) {
if ($official->division_scope == "national") {
$modal_counter = echoOfficial($official, $modal_counter);
}
}
if
работает нормально, а echoOfficial()
функция вызывается, но свойства не отображаются вместе с текстом (вывод просто Scope: Name:
), и кажется, что объект на самом деле не передается функции. Если я пытаюсь получить доступ к одному из методов объекта, код просто не запускается.
Я не могу понять, что я делаю неправильно. Я думаю, что это может быть связано с доступом к объектам из цикла foreach, но я не уверен.
У вас есть простая опечатка — function echoOfficial($offic!!al
— Вы пропустили i
,
Я бы порекомендовал вам использовать любую IDE с подсветкой синтаксиса, чтобы избежать таких ошибок в будущем, так как иначе их невероятно сложно обнаружить.
Других решений пока нет …