Невозможно назначить по ссылке перегруженный объект

это часть моей темы WordPress, и она дает мне ошибку для последней строки кода. Я использую WordPress 3.5.1 на PHP 5.4.

Fatal error: Cannot assign by reference to overloaded object in C:\server\htdocs\web\digitalnak\wp-content\themes\rework\framework\php\PeTheme\PeThemeGallery.php on line 234

и вот код

 $post =& get_post($id);
    if (!$post ) return $post;
    $null = null;
    if ($post->post_type != "gallery") return $null;

    $meta =& $this->master->meta->get($id,$post->post_type);
    $post->meta =& $meta;

person Silvio Marijic    schedule 21.03.2013    source источник
comment
Какая из них является строкой 234? Какую версию PHP вы используете? Какую тему вы запускаете? Какая версия Вордпресс?   -  person andrewsi    schedule 21.03.2013
comment
234 — это $post-›meta =& $meta, у меня php версии 5.4 и wordpress 3.5.1.   -  person Silvio Marijic    schedule 21.03.2013
comment
Что за объект $post?   -  person The Pellmeister    schedule 18.04.2013


Ответы (1)


Не взглянув ни на что — и поэтому это может вообще не сработать — попробуйте следующее:

$post =& get_post($id);
if (!$post ) return $post;

$null = null;
if ($post->post_type != "gallery") return $null;

$meta =& $this->master->meta->get($id,$post->post_type);
$post->meta = $meta;

Похоже, вы присваиваете значение по ссылке на объект ArrayAccess. Это не работает в некоторых версиях PHP. Я не могу судить об этом, но похоже, что этот код использует передачу по ссылке очень интенсивно, возможно, больше, чем необходимо.

person The Pellmeister    schedule 18.04.2013