ไม่สามารถกำหนดโดยอ้างอิงกับวัตถุที่โอเวอร์โหลดได้

นี่เป็นส่วนหนึ่งของธีม 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 เวอร์ชันใดอยู่ คุณกำลังใช้ธีมอะไรอยู่? Wordpress เวอร์ชันใด   -  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