Mengapa variabel PHP harus didahului dengan tanda dolar?

13

Saya mengerti bahwa semua variabel PHP harus didahului dengan tanda dolar (misalnya $someValue = 1), tetapi mengapa demikian? Mengapa pilihan desain ini dibuat?

Alasan saya bertanya adalah pacar saya bertanya mengapa ketika saya menyebutkan bahwa variabel PHP perlu dimulai dengan tanda dolar, dan saya menyadari saya tidak tahu mengapa pilihan sintaksis ini dibuat.

Ada ide?

Ivan
sumber
11
Karena pembuat PHP tidak tahu bagaimana menulis parser. Jadi kruk diperlukan untuk mengidentifikasi pengidentifikasi.
ThomasX
@ThomasX - Haha Anda mungkin benar ... Saya juga bukan penggemar basis kode C (ya)
Ben DeMott
Saya pikir hanya orang yang membuat PHP yang dapat menjawab pertanyaan ini.
kiamlaluno
1
Saya kira itu untuk mendorong pengembang ... setiap kali Anda memasukkan $ sign Anda lebih dekat dengan pembayaran Anda!
Kamil Klimek
Saya akan senang jika saya tidak harus menggunakan $this->di depan setiap variabel dan fungsi kelas.
Chloe

Jawaban:

8

Yah aku benar-benar bukan penggemar $$$ (saya tidak terlalu peduli berapa biaya variabel). Tapi itu berasal dari perl.

Bahasa scripting yang ditafsirkan seperti perl atau php menggunakan $ untuk dengan cepat mengidentifikasi dan mem-parsing variabel. Itu hanya optimasi untuk penerjemah. Tapi jelas bukan optimasi untuk programmer!

JSideris
sumber
Bagaimana ini bukan optimasi untuk seorang programmer? - Saya dapat segera mengidentifikasi variabel dan membedakannya dari konstruksi lain ..
johannes
Saya percaya Larry Wall pernah berkata $ di depan variabel membuatnya lebih mudah untuk memperpanjang Perl tanpa melanggar kode yang ada. Dia bisa menambahkan kata kunci baru yang belum akan digunakan sebagai variabel. Seharusnya artikel ini , tapi itu di belakang paywall :-(
SL Barth - Reinstate Monica
@johannes Saya juga dapat segera mengidentifikasi variabel dalam C bahkan tanpa $ karena saya sudah hafal semua kata kunci dan fungsi memiliki tanda kurung setelah mereka.
JSideris
1
@Bizorke C mungkin memiliki lebih sedikit kata kunci (tidak menghitungnya) tetapi, PHP memiliki konstanta, tanpa $, meskipun orang biasanya menggunakan konstanta dalam UPERCASE. Dan yah, begitu Anda tahu semua kata kunci, dll. Dengan hati Anda sudah mahir, sampai di sana mungkin lebih sederhana dengan bantuan visual ini ... tetapi kemudian: Ini adalah masalah selera. Asumsi saya untuk jawaban akan "disalin dari Perl" dan "lebih mudah diurai" alias. keputusan bersejarah
johannes
@ johannes Saya tidak mengatakan $ telah disalin dari perl, saya mengatakan itu berasal dari Perl; PHP didasarkan pada Perl. Ya itu preferensi. Saya tidak suka mengetik $ setiap kali dan di banyak editor $ tidak dipilih ketika Anda mengklik dua kali pada kata (memperlambat copy / paste). Ya PHP memiliki kata kunci yang sedikit lebih banyak daripada C, tetapi argumen saya masih berlaku untuk C ++, java, dll. Kata-kata kunci umumnya mudah diingat dan biasanya relatif konsisten di antara bahasa. Juga, PHP tidak hanya untuk pemula. Saya memprogram dalam PHP (dan banyak bahasa lainnya) setiap hari, dan saya dapat memberi tahu Anda bahwa $ tidak melakukan apa-apa selain memperlambat saya.
JSideris
5

PHP Awalnya adalah meta-sintaks yang diuraikan dan secara dinamis dipanggil-ke dalam fungsi program-c yang dikompilasi.
Dengan cara ini Anda dapat menganggapnya mirip dengan program "shell" untuk "web" ...
Tidak heran variabel dengan tanda dolar $ digunakan mirip dengan variabel shell.

Ketika saya berusia 12 tahun, dan saya sedang belajar PHP 3 ... sebagai bahasa pemrograman pertama saya - memiliki $ membuat hidup jadi lebih mudah. Saya tahu apa variabel itu, tetapi memiliki pengingat di semua kode sumber yang saya baca membuat belajar menjadi mungkin ... tidak yakin saya akan berada di sini hari ini jika saya tidak mulai menggunakan PHP.

Berikut ini contoh dari -> http://www.php.net/manual/en/history.php.php

<! - sertakan /text/header.html ->

<! - getenv HTTP_USER_AGENT ->
<! - ifsubstr $ exec_result Mozilla ->
  Hei, Anda menggunakan Netscape! <p>
<! - endif ->

<! - sql database pilih * dari tabel di mana pengguna = '$ username' ->
<! - ifless $ numentries 1 ->
  Maaf, catatan itu tidak ada <p>
<! - endif keluar ->
  Selamat datang <! - $ pengguna ->! <p>
  Anda memiliki <! - $ indeks: 0 -> kredit tersisa di akun Anda. <p>

<! - sertakan /text/footer.html ->
Ben DeMott
sumber
2
Meskipun saya tidak ragu bahwa tanda dolar bermanfaat bagi Anda, saya bertanya-tanya apakah mungkin itu adalah kesederhanaan keseluruhan dari PHP yang lebih berkaitan dengan itu. Saya mulai dengan Javascript dasar sebagai seorang remaja dan menemukan variabel yang cukup mudah dipelajari, mungkin karena contoh-contoh Javascript pada masa itu sangat sederhana.
Matt Browne