ทำไมตัวแปร PHP จำเป็นต้องนำหน้าด้วยเครื่องหมายดอลลาร์


13

ฉันเข้าใจว่าตัวแปร PHP ทั้งหมดจะต้องนำหน้าด้วยเครื่องหมายดอลลาร์ (เช่น$someValue = 1) แต่ทำไมถึงเป็นเช่นนั้น ทำไมตัวเลือกการออกแบบนี้ถูกสร้างขึ้นมา?

เหตุผลที่ฉันถามคือแฟนของฉันถามว่าทำไมเมื่อฉันพูดถึงว่าตัวแปร PHP ต้องเริ่มต้นด้วยเครื่องหมายดอลลาร์และฉันรู้ว่าฉันไม่รู้ว่าทำไมตัวเลือกประโยคนี้จึงถูกสร้างขึ้น

ความคิดใด ๆ


11
เนื่องจากผู้สร้าง PHP ไม่รู้วิธีเขียนโปรแกรมแยกวิเคราะห์ ดังนั้นไม้ยันรักแร้จึงจำเป็นต้องระบุตัวบ่งชี้
ThomasX

@ThomasX - ฮ่า ๆ คุณอาจจะถูกต้อง ... ฉันเป็นแฟนของรหัส C ฐานอย่างใดอย่างหนึ่ง (Yikes) ไม่มี
เบน DeMott

ฉันคิดว่ามีเพียงผู้สร้าง PHP เท่านั้นที่สามารถตอบคำถามนี้ได้
kiamlaluno

1
ฉันเดาว่ามันคือการสนับสนุนให้นักพัฒนา ... ทุกครั้งที่คุณใส่เครื่องหมาย $ คุณจะได้ใกล้เคียงกับการชำระเงินของคุณ!
Kamil Klimek

ฉันมีความสุขถ้าไม่ต้องใช้$this->หน้าตัวแปรและฟังก์ชั่นของทุกคลาส
Chloe

คำตอบ:


8

ฉันก็ไม่ได้เป็นแฟนตัวยงของ $$$ เช่นกัน (ฉันไม่สนใจว่าจะมีค่าใช้จ่ายเท่าใด) แต่มันมาจาก Perl

ภาษาสคริปต์ที่ตีความเช่น perl หรือ php ใช้ $ เพื่อระบุและแยกตัวแปรอย่างรวดเร็ว มันเป็นเพียงการเพิ่มประสิทธิภาพสำหรับล่าม แต่แน่นอนว่าไม่ใช่การเพิ่มประสิทธิภาพสำหรับโปรแกรมเมอร์!


มันไม่ใช่การเพิ่มประสิทธิภาพสำหรับโปรแกรมเมอร์อย่างไร? - ฉันสามารถระบุตัวแปรได้ทันทีและแยกแยะพวกมันออกจากโครงสร้างอื่น ๆ ..
โยฮันเนส

ฉันเชื่อว่า Larry Wall เคยกล่าวไว้ว่า $ หน้าตัวแปรทำให้การขยาย Perl ง่ายขึ้นโดยไม่ทำให้โค้ดที่มีอยู่เสียหาย เขาสามารถเพิ่มคำหลักใหม่ที่ไม่ได้ใช้เป็นตัวแปรแล้ว มันควรจะเป็นบทความนี้แต่มันอยู่เบื้องหลัง paywall :-(
SL Barth - Reinstate Monica

@ โยฮันเนสฉันสามารถระบุตัวแปรใน C ได้ทันทีโดยไม่ต้อง $ เพราะฉันจำคำสำคัญทั้งหมดและฟังก์ชั่นที่มีวงเล็บหลังจากพวกเขา
JSideris

1
@Bizorke C อาจมีคำหลักน้อยกว่า (ไม่นับพวกเขา) แต่ก็มี PHP ที่มีค่าคงที่โดยไม่มี $ แม้ว่าผู้คนมักจะใช้ค่าคงที่ใน UPERCASE และเมื่อคุณทราบคำหลักทั้งหมดแล้วคุณคิดว่าคุณก้าวหน้าแล้วการไปที่นั่นอาจจะง่ายขึ้นด้วยความช่วยเหลือด้านภาพนี้ ... แต่แล้ว: นี่เป็นเรื่องของรสนิยม สมมติฐานของฉันสำหรับคำตอบคือ "คัดลอกจาก Perl" และ "ง่ายกว่าในการแยกวิเคราะห์" aka การตัดสินใจครั้งประวัติศาสตร์
โยฮันเนส

@ Johannes ฉันไม่ได้บอกว่า $ ถูกคัดลอกมาจาก Perl ฉันบอกว่ามันมาจาก Perl; PHP ขึ้นอยู่กับ Perl ใช่มันเป็นสิ่งที่ชอบ ฉันไม่ชอบการพิมพ์ $ ทุกครั้งและในบรรณาธิการจำนวนมากไม่ได้ถูกเลือกเมื่อคุณดับเบิลคลิกที่คำนั้น (ช้าลงคัดลอก / วาง) ใช่ PHP มีคำหลักมากกว่า C เล็กน้อย แต่อาร์กิวเมนต์ของฉันยังคงใช้กับ C ++, java และอื่น ๆ คำสำคัญมักจะจดจำได้ง่ายและมักจะค่อนข้างสอดคล้องกันระหว่างภาษา นอกจากนี้ PHP ไม่ใช่แค่สำหรับผู้เริ่มต้น ฉันเขียนโปรแกรมด้วย PHP (และภาษาอื่น ๆ ) ทุกวันและฉันสามารถบอกคุณได้ว่าเงินดอลล่าร์ไม่ได้ทำอะไรเลยนอกจากทำให้ฉันช้าลง
JSideris

5

PHP เดิมเป็นเมตาไวยากรณ์ที่แยกวิเคราะห์และเรียกแบบไดนามิกในฟังก์ชั่นโปรแกรม c ที่คอมไพล์
ด้วยวิธีนี้คุณสามารถคิดได้ว่ามันคล้ายกับโปรแกรม "เชลล์" สำหรับ "เว็บ" ...
มันไม่น่าแปลกใจที่ตัวแปรที่มี $ dollarigns ถูกใช้คล้ายกับตัวแปรเชลล์

เมื่อฉันอายุ 12 ขวบและฉันกำลังเรียนรู้ PHP 3 ... เป็นภาษาการเขียนโปรแกรมแรกของฉัน - การทำเงิน $ ทำให้ชีวิตง่ายขึ้นมาก ฉันรู้ว่าตัวแปรคืออะไร แต่มีการเตือนความจำในซอร์สโค้ดทั้งหมดที่ฉันอ่านทำให้การเรียนรู้เป็นไปได้ ... ไม่แน่ใจว่าฉันจะมาที่นี่วันนี้ถ้าฉันไม่ได้เริ่มต้นที่ PHP

นี่คือตัวอย่างจาก -> http://www.php.net/manual/en/history.php.php

<! - รวม /text/header.html ->

<! - getenv HTTP_USER_AGENT ->
<! - ifsubstr $ exec_result Mozilla ->
  สวัสดีคุณใช้ Netscape! <p>
<! - endif ->

<! - ฐานข้อมูล sql เลือก * จากตารางโดยที่ user = '$ username' ->
<! - ถ้าไม่มี $ numentries 1 ->
  ขออภัยบันทึกนั้นไม่มีอยู่ <p>
<! - endif exit ->
  ยินดีต้อนรับ <! - $ user ->! <p>
  คุณมี <! - $ index: 0 -> เครดิตที่เหลืออยู่ในบัญชีของคุณ <p>

<! - รวม /text/footer.html ->

2
ในขณะที่ฉันไม่สงสัยว่าเครื่องหมายดอลลาร์มีประโยชน์กับคุณหรือไม่ฉันสงสัยว่าบางทีมันอาจเป็นความเรียบง่ายโดยรวมของ PHP ที่มีส่วนเกี่ยวข้องมากกว่า ฉันเริ่มต้นด้วย Javascript พื้นฐานตอนเป็นวัยรุ่นและพบว่าตัวแปรเรียนรู้ได้ง่ายซึ่งอาจเป็นเพราะตัวอย่าง Javascript ในสมัยนั้นง่ายมาก
Matt Browne
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.