PHP çıplak dizeleri için herhangi bir meşru kullanımı var mı?

3 Cevap php

This question Bana çıplak dizeleri hakkında düşünme var.

PHP bir sabit ise ilk bakar, tırnak içinde olmayan bir dize görür. Değilse, o sadece bir dize var ve yine gider varsayar. Yani, örneğin ben varsa

echo $foo[bar];

O zaman bir çıplak dize olarak bar davranır, çok değilse bile dizi anahtarı için, ama sadece gibi davranır kullanan bar adında bir sabit varsa

echo $foo["bar"];

Bazı gelecekteki bir tarihte sabit aynı adla eklenmiş ise, bu sorunları her türlü neden olabilir.

Benim soru aslında çıplak dize kullanmak mantıklı olan herhangi bir durum var, nedir?

3 Cevap

Hayır, ben mantıklı olur bir tek örneğini göremiyorum, ve her zaman tehlikelidir. Tırnak işaretleri olmadan dizelerini kullanarak kesinlikle sabitlerini ele saklıdır olmalıdır. Ben PHP mucitler tüm bu saçma davranışı tanıtmak için karar nasıl anlamıyorum - neredeyse imkansız sabitleri doğru kullanımı yapar (tanımlı henüz bir sabit erişmeye çalışırsanız, PHP sessizce ve aptalca üretecektir çünkü any parası vermeden bir dize).

Bu muhtemelen meşru sayılmaz, ama arkadaşımın Tweetable proof-of-concept MVC framework, TweetMVC, örneğin, bir kaç daha fazla karakter sıkmak için birkaç noktalar tırnak kaçınan:

foreach(c('mod')as$f)require"t/$f.php";@list($c,$m,$a)=explode('/',@$_GET[r],3);$c=$c?:c('dc');$o=(@include"c/$c.php")?@new$c($m,$a):e(1)