เอกสารใช้มอบหมายโดยการอ้างอิง (= &) แต่สิ่งนี้จำเป็นสำหรับ PHP 5 หรือไม่


12

ฉันสังเกตเห็นในเอกสาร Joomla, เช่นJFactory / getSession , ตัวอย่างนั้นใช้ assign-by-reference ( =&), แทนที่จะเป็นงานง่าย ๆ ( =)

$session =& JFactory::getSession();

นี่เป็นสิ่งที่ล้าสมัยหรือครอบคลุมผู้ใช้ PHP 4 อย่างมีจุดประสงค์หรือไม่

สิ่งนี้จำเป็นสำหรับ PHP 5 หรือไม่? หรือมีบางสิ่งที่เกี่ยวข้องกับ Joomla ที่ฉันมองข้ามไป


เป็นคำถามที่ดีมาก! ฉันมักจะสงสัยว่าฉันควรจะใช้สัญลักษณ์เท่ากับและเครื่องหมายและหรือเพียงแค่สัญลักษณ์เท่ากับ
TryHarder

เอกสารบางฉบับไม่ได้รับการอัพเดต เมื่อคุณเห็นบางสิ่งเพียงกดปุ่มแก้ไขมันเป็นวิกิ
Valentin Despa

คำตอบ:


9

สิ่งนี้ใช้สำหรับ PHP4 ครั้ง ตั้งแต่ PHP5 เป็นต้นไปวัตถุถูกกำหนดโดยอ้างอิงดังนั้นจึงไม่จำเป็นต้องทำอย่างชัดเจน


1
ใน php 5 มันทำให้หลาย ๆ คำเตือนมาตรฐานที่เข้มงวดมีเช่นกันและมีจำนวนมากในแกน Joomla บางครั้งก็ทำให้เกิดความสนุกเมื่อคุณสลับไปที่การรายงานข้อผิดพลาดในการพัฒนา การเปลี่ยนแปลงอีกอย่างหนึ่งใน PHP นั้นทำให้ความเข้ากันได้นั้นยาก
Jordan Ramstad

มันไม่ดีใน Joomla 1.5 เนื่องจากมันถูกเขียนขึ้นเพื่อรองรับ PHP 4.3 ขึ้นไป ด้วย 2.5 และ 3.x จำนวนE_STRICTข้อผิดพลาดในคอร์จะน้อยที่สุดถ้ามี
Michael

1
ขอบคุณฉันคิดว่ามันต้องเป็นอาการเมาค้าง PHP4 แต่ด้วย Joomla 1.6+ ที่ต้องการ PHP5 +ฉันเริ่มสงสัย จุดเล็ก ๆ น้อย ๆ แต่วัตถุไม่ได้ "กำหนดโดยการอ้างอิง" ใน PHP5 โอเปอเรเตอร์ที่ได้รับมอบหมายโดยอ้างอิงไม่ใช่ reqd (ในกรณีส่วนใหญ่) เนื่องจากอินสแตนซ์ของคลาสจะถูกจัดเก็บแตกต่างกันใน PHP5 (อินสแตนซ์ชั้นถือ "ระบุวัตถุ" มากกว่าค่าของตัวเองในขณะที่ PHP4.) ความ "ระบุวัตถุ" จะได้รับมอบหมายใน PHP5 มากกว่าค่าวัตถุ ผลลัพธ์สุทธิคล้ายกัน แต่มีความแตกต่าง
MrWhite
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.