Tek teklif ve php çift alıntı arasındaki fark

Tek tırnak ve çift tırnaklar PHP'de biraz farklıdır. Nasıl değerlendirildiğiyle ilgili farklılıkları görmek için okumaya devam edin.

Tek tırnak

Tek tırnaklar, şeyleri çok daha açık bir biçimde ayrıştırmaya eğilimlidir. Örneğin, aşağıdakileri yapın:

 $ test = "BOOOM"; echo '$ test' 

Tek tırnak içine konduğunda değişken adı gerçek değerine ayrılmaz. İşte bunu basit bir php programı olarak çalıştırmaktan basılmış olan:

 $ testi 

Bilginin gerçekte tek bir tırnak dizisinde ayrıştırıldığını düşünebildiğim sadece 2 senaryo var. İlk olarak, tek tırnaklı bir karakteri görüntülemek için, önce bir ters eğik çizgi ile yapılmalıdır. Aksi halde dizininizin sonu olarak yorumlanacaktır. İkincisi, bir ters eğik çizgi görüntülemek için, bir başka backslack tarafından önce olmalıdır. Örnek:

 echo 'tek fiyat teklifi: \' '; echo 'ters eğik çizgi: \\'; 

İkili alıntı

Çift teklifler, sizin için işleri ayrıştırmaya eğilimlidir. Çift tırnak arasında koşarken:

 $ test = "BOOOM"; echo "$ test" 

Gerçek değişken değerini çıkarır:

 booom 

Şimdi, zaman zaman, çıkış yapmaya çalıştığınız değişken adının, bazı çevreleyen karakterler nedeniyle doğru şekilde ayrıştırılmayacağı bir senaryoya gireceksiniz.

 $ test = "BOOOM"; echo "$ test edildi"; 

Sizce buranın çıktısı nedir? Cevap hiçbir şey değil. PHP $ test adında bir değişken arar ve mevcut olmadığından hiçbir şey çıktı olmaz. 'Ed' ile takip edilen değeri elde etmenin doğru yolu şöyle olurdu:

 $ test = "BOOOM"; echo "{$ test} ed"; 

Kıvrık parantez içinde sarılarak, PHP'nin değişkenin nerede başladığını ve durduğunu bilmesini sağlar, böylece değişkeni uygun şekilde değerlendirir.

Hız farkı

Bazı fark senaryolarını değerlendirmek için birkaç basit kıyaslama testi yaptım, 2 arasındaki hız farkı ihmal edilebilir. Tek tırnaklar, bir değişkeni aramak ve sonra değeri ayrıştırmak zorunda kalmamaları nedeniyle, her biri biraz daha hızlıydı, ama bu, maddenin bir fark yarattığı bir senaryoya hiç rastlamadım. Mevcut gereksinimlerinize uygun olanı kullanın.

Ayrıca Bkz