PHP: ilişkisel dizi endekslerinde kullanma alanlarda

4 Cevap php

Bu kötü uygulama / sorunlara neden olabilir mi?

$_SESSION['stuff to keep']

str_replace() endeksleri çağıran karşı.

4 Cevap

Bunun nedeni uzayda kötü bir uygulamadır, ancak.

// file foo.php
$_SESSION['stuff to keep'] = 42;

// file bar.php
if ($_SESSION['stufft o keep'] == 42) frobnicate();

İşte, sizin kod sessizce hatalı çalışıyor ve hata bulunabilir bir süre alabilir. Iyi uygulama böyle bir sınıf sabiti olarak, bir PHP zorlanan adını kullanmak için:

$_SESSION[Stuff::TO_KEEP] = 42;

if($_SESSION[Stuff::TOO_KEEP] == 42) 
// error: no constant TOO_KEEP in class Stuff

Daha sonra (boşluklu) gibi "stuff to keep" gibi, ilginç veya okunabilir bulmak herhangi bir sabit o sabit tanımlayabilir. Tabii ki, extract() ve döküm object artık işe yaramaz, ancak oturum ile zaten yapıyor olmamalıdır.

Oturum anahtarlarının içine sağlayan kullanıcı-girilen metin, tabii ki, bir bariz güvenlik hatam.

Bunu yapabilirsin, bu iş olacak - Bir dosyadan anahtarlarını almak ve ne zaman "elle" benim dizilerin tuşlarını ayarlamak zaman ben genellikle bunu yapmazsanız bile, bazen olur {[(0) }], ve ben bu konuda herhangi bir sorun olmadı.

Eğer kullanıyorsanız, belki de bu bir sorun çeşit neden olabilir extract functions, though. If it creates variables with spaces in their names (don't know if it will) o (but not impossible) sizin değişkenlere erişmek için zor olacak.

Bu bir soruna neden olmaz, ama değişken isimleri böylece aynı hususlar ile seçilmelidir gibi dizi anahtarları genellikle kabul edilir

Bence gereksiz boşluk ekleme gibi ... Ben genellikle boşluk kullanmayın yok gibi görünüyor. Bunu yaparsanız, ancak, dizi anahtarları alıntı emin olun.