PHP değişkenlerinin öncesinde bir dolar işareti olması neden gerekli?


13

Tüm PHP değişkenlerinin bir dolar işareti (örn. $someValue = 1) Öncesinde olması gerektiğini anlıyorum , ama neden böyle? Bu tasarım seçimi neden yapıldı?

Sormamın nedeni, kız arkadaşımın PHP değişkenlerinin bir dolar işareti ile başlaması gerektiğini söylediğimde neden sorduğum ve bu sözdizimsel seçimin neden yapıldığına dair hiçbir fikrim olmadığını fark ettim.

Herhangi bir fikir?


11
Çünkü PHP'nin yaratıcısı nasıl ayrıştırıcı yazacağını bilmiyordu. Bu yüzden tanımlayıcıları tanımlamak için bir koltuk değneği gerekiyordu.
ThomasX

@ThomasX - Haha muhtemelen haklısın ... Ben de C kodu tabanının hayranı değilim (yikes)
Ben DeMott

Ben sadece PHP yaratan bu soruya cevap verebilir düşünüyorum.
kiamlaluno

1
Sanırım geliştiriciyi teşvik etmek ... her $ işareti koyduğunuzda ödemenize daha yakınsınız!
Kamil Klimek

$this->Her sınıf değişkeni ve fonksiyonunun önünde kullanmak zorunda kalmazsam çok mutlu olurum .
Chloe

Yanıtlar:


8

Peki ben gerçekten $$$ büyük bir hayranı değilim (gerçekten değişken maliyeti ne kadar umurumda değil). Ama perl'den geliyor.

Perl veya php gibi yorumlanmış kodlama dilleri, değişkenleri hızlı bir şekilde tanımlamak ve ayrıştırmak için $ öğesini kullanır. Bu sadece tercüman için bir optimizasyon. Ama kesinlikle programcı için bir optimizasyon değil!


Bir programcı için bir optimizasyon nasıl değildir? - Değişkenleri hemen tanımlayabilir ve diğer yapılardan ayırt edebilirim ..
johannes

Larry Wall'un bir zamanlar değişkenlerin önündeki $ 'ın mevcut kodu bozmadan Perl'i genişletmeyi kolaylaştırdığını söylediğine inanıyorum. Zaten değişken olarak kullanılmayacak yeni anahtar kelimeler ekleyebilir. Bu makale olmalı , ancak bir ödeme duvarının arkasında :-(
SL Barth - Monica'yı yeniden eski haline

@johannes Ben de $ olmadan bile anında C bir değişkeni tanımlayabilir çünkü tüm anahtar kelimeler ve fonksiyonlar sonra parantez var ezberledim.
JSideris

1
@Bizorke C muhtemelen daha az anahtar kelimeye sahiptir (onları saymazdı), ancak insanlar genellikle UPERCASE'te sabitler kullansa da PHP'nin $ olmadan sabitleri vardır. Ve tüm anahtar kelimeleri vb ezbere öğrendikten sonra, bu görsel yardımla daha basit olabilir ... ama sonra: Bu bir zevk meselesidir. Bir cevap için benim varsayım "Perl'den kopyalandı" ve "ayrıştırmak daha basit" olurdu. tarihi karar
johannes

@johannes $ perl kopyalandı söylemedim, Perl geliyor dedim; PHP Perl tabanlıdır. Evet tercih edilir. Her seferinde $ yazmayı sevmiyorum ve birçok editörde $ kelimesine çift tıkladığınızda seçili değil (kopyala / yapıştır işlemini yavaşlatır). Evet PHP, C'den biraz daha fazla anahtar kelimeye sahiptir, ancak benim argümanım hala C ++, java, vb. Ayrıca, PHP yeni başlayanlar için SADECE değildir. Her gün PHP (ve diğer birçok dilde) programlıyorum ve $ 'ın beni yavaşlatmaktan başka bir şey yapmadığını söyleyebilirim.
JSideris

5

PHP Başlangıçta ayrıştırılmış ve derlenmiş bir c-program işlevlerine dinamik olarak çağrılan bir meta-sözdizimiydi.
Bu şekilde "web" için bir "kabuk" programına benzer düşünebilirsiniz ...
$ dolar işareti olan değişkenlerin kabuk değişkenlerine benzer şekilde kullanılması şaşırtıcı değildir.

12 yaşındayken ve PHP 3'ü ilk programlama dilim olarak öğreniyordum - $ hayatını çok daha kolay hale getirdim. Bir değişkenin ne olduğunu biliyordum, ama okuduğum tüm kaynak kodunda bir hatırlatıcı olması öğrenmeyi mümkün kıldı ... PHP'de başlamadıysam bugün burada olacağımdan emin değilim.

İşte bir örnek -> http://www.php.net/manual/en/history.php.php

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

<! - getenv HTTP_USER_AGENT ->
<! - ifsubstr $ exec_result Mozilla ->
  Hey, Netscape kullanıyorsun! <p>
<! - endif ->

<! - sql veritabanı seçin kullanıcı * '$ kullanıcı adı' tablodan * ->
<! - ifless $ numentries 1 ->
  Üzgünüz, bu kayıt mevcut değil <p>
<! - endif çıkış ->
  Hoş Geldiniz <! - $ user ->! <p>
  Hesabınızda <! - $ endeksi: 0 -> krediniz kaldı. <p>

<! - /text/footer.html -> yaz

2
Dolar işareti sizin için yararlı olduğundan şüphe olmasa da, belki onunla daha fazla ilgisi vardı PHP genel sadeliği olup olmadığını merak ediyorum. Temel Javascript ile genç olarak başladım ve değişkenleri öğrenmesi oldukça kolay buldum, çünkü o günlerde Javascript örnekleri çok basitti.
Matt Browne
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.