อะไร =&
(equals-ampersand) ทำอะไรใน PHP?
เลิกใช้แล้วหรือยัง
อะไร =&
(equals-ampersand) ทำอะไรใน PHP?
เลิกใช้แล้วหรือยัง
คำตอบ:
ยังไม่เลิกใช้งานและไม่น่าจะเป็นไปได้ เป็นวิธีมาตรฐานในการสร้างส่วนหนึ่งของอาร์เรย์หนึ่งหรือการเปลี่ยนแปลงมิเรอร์อ็อบเจ็กต์ไปยังอีกอันหนึ่งแทนที่จะคัดลอกข้อมูลที่มีอยู่
เรียกว่าการกำหนดโดยการอ้างอิงซึ่งหากต้องการอ้างอิงคู่มือ"หมายความว่าตัวแปรทั้งสองลงเอยด้วยการชี้ไปที่ข้อมูลเดียวกันและไม่มีการคัดลอกที่ใดเลย"
สิ่งเดียวที่จะเลิกกับ=&
คือ "การกำหนดผลของnew
การอ้างอิง" ในPHP 5ซึ่งอาจจะเป็นแหล่งที่มาของความสับสนใด ๆ new
ที่ได้รับมอบหมายโดยอัตโนมัติโดยการอ้างอิงเพื่อให้&
ซ้ำซ้อน / เลิกใช้ในแต่ไม่ได้อยู่ใน$o = &new C;
$o = &$c;
เนื่องจากเป็นการยากที่จะค้นหาโปรดทราบว่า=&
( เท่ากับเครื่องหมายแอมเปอร์แซนด์ ) เหมือนกับ= &
( เท่ากับเครื่องหมายวรรคตอน ) และมักจะเขียนในลักษณะที่รันในตัวแปรอื่นเช่น$x = &$y['z'];
หรือ$x = &$someVar
( ชื่อตัวแปรเครื่องหมายแอมเพอร์แซนด์ ) ตัวอย่างที่ง่ายขึ้นจากเอกสาร:
$a = 3;
$b = &$a;
$a = 4;
print "$b"; // prints 4
นี่คือการเชื่อมโยงที่มีประโยชน์ไปยังส่วนรายละเอียดเกี่ยวกับการกำหนดโดยการอ้างอิงในคู่มือของ PHP หน้านั้นเป็นส่วนหนึ่งของชุดข้อมูลอ้างอิง - ควรใช้เวลาสักนาทีในการอ่านทั้งชุด
เป็นตัวดำเนินการสองตัวที่แตกต่างกัน =
คือการมอบหมายงานอย่างที่คุณคงทราบดี และ&
หมายความว่าตัวแปรควรเข้าถึงโดยการอ้างอิงมากกว่าตามค่า
$x = &$y['z'];
นอกจากนี้ยังมีผลกระทบจากการสร้างถ้ามันไม่ได้อยู่และการตั้งค่าให้$y['z']
null
ซึ่งจะป้องกันข้อความแสดงข้อผิดพลาดที่คุณอาจต้องการอ่าน ฉันยังไม่พบเอกสารเกี่ยวกับเรื่องนี้ อาจจะใหม่ใน 5.3 สำหรับทุกสิ่งที่ฉันรู้