ราคาเดียวและราคาคู่ถูกจัดการแตกต่างกันเล็กน้อยใน PHP อ่านต่อไปเพื่อดูความแตกต่างในวิธีการประเมินผล
คำพูดเดียว
คำพูดเดียวมีแนวโน้มที่จะแยกสิ่งต่าง ๆ ในความหมายที่แท้จริงมากขึ้น ตัวอย่างเช่นใช้สิ่งต่อไปนี้:
$ test = "BOOOM"; echo '$ test'
ชื่อตัวแปรเมื่อใส่ภายในเครื่องหมายคำพูดเดี่ยวจะไม่ถูกแยกวิเคราะห์เป็นค่าจริง นี่คือสิ่งที่พิมพ์ออกมาจากการทำงานเป็นโปรแกรม php อย่างง่าย:
$ ทดสอบ
มีเพียง 2 สถานการณ์ที่ฉันสามารถคิดได้ว่าข้อมูลจะถูกแยกวิเคราะห์อะไรภายในสตริงที่ยกมาเดี่ยว ก่อนอื่นให้แสดงอักขระที่ยกมาตัวเดียวมันจะต้องมีแบ็กสแลชนำหน้า มิฉะนั้นจะถูกตีความว่าเป็นจุดสิ้นสุดของสตริงของคุณ ประการที่สองเพื่อแสดงแบ็กสแลชจะต้องมีแบ็กสแลชอื่นนำหน้า ตัวอย่าง:
echo 'single quote: \' '; echo 'backslash: \\';
คำคมคู่
เครื่องหมายคำพูดคู่มักจะแยกวิเคราะห์สิ่งต่าง ๆ สำหรับคุณ เมื่อทำงานระหว่างเครื่องหมายคำพูดคู่:
$ test = "BOOOM"; echo "$ test"
มันส่งออกค่าตัวแปรที่เกิดขึ้นจริง:
Booom
ทีนี้ในบางครั้งคุณจะพบกับสถานการณ์ที่ชื่อตัวแปรที่คุณพยายามส่งออกเกิดจากการแยกวิเคราะห์ไม่ถูกต้องเนื่องจากมีอักขระบางตัวล้อมรอบอยู่
$ test = "BOOOM"; echo "$ ทดสอบแล้ว";
คุณคิดว่าจะได้รับผลลัพธ์ที่นี่? คำตอบคืออะไร PHP มองหาตัวแปรชื่อ $ ที่ผ่านการทดสอบและเนื่องจากไม่มีตัวตนจึงไม่มีเอาท์พุท วิธีที่เหมาะสมในการส่งออกค่าตามด้วย 'ed' จะเป็น:
$ test = "BOOOM"; echo "{$ test} ed";
โดยการห่อไว้ในวงเล็บปีกกาทำให้ PHP รู้ว่าตัวแปรเริ่มต้นและหยุดที่ใดทำให้สามารถประเมินตัวแปรได้อย่างเหมาะสม
ความแตกต่างความเร็ว
ฉันใช้การทดสอบการเปรียบเทียบง่ายๆเพื่อประเมินสถานการณ์ที่แตกต่างความแตกต่างของความเร็วระหว่าง 2 นั้นเล็กน้อยมาก การเสนอราคาเดียวทุกครั้งเร็วขึ้นเล็กน้อยเนื่องจากความจริงที่ว่ามันไม่จำเป็นต้องมองหาตัวแปรแล้วทำการแยกวิเคราะห์ค่า แต่ฉันไม่เคยพบสถานการณ์ที่ทำให้เกิดความแตกต่างมากพอ ใช้แล้วแต่ความต้องการในปัจจุบันของคุณ