Throw-away komut ya da gerçekten bir hata yakalamak için iyi bir yol yoktur örnekleri haricinde burada hata bastırma büyük bir hayranıyım.
Beni Uninitialized string offset
hata davranışını anlatalım. Bu bir hata değil:
Example #1
$a = 0;
$b = $a['f5'];
$a
sayısal bir skaler bir değerdir. Ikinci satırda PHP örtük bir dize için bu sayısal değer atıyor. Dizge '0'
, 1 kadar bir uzunluğa sahiptir.
PHP Eğer dahili diziler gibi PHP mağazalar dizeleri gibi, bir dizi dizin kullanarak bir dize bir karakter arama yapabilirsiniz. Örneğin:
$s= 'abcd';
print_r($s[1]);
Bu dize, ikinci karakter olduğu gibi bu kodun çıktısı b
olacaktır. Örnek # 1 arama 'f5'
dizeleri sadece karakter konumuna endeksli olabilir gibi bir sayıya dönüştürülür ediliyor. echo intval('f5');
PHP, sayısal bir bağlamda 0
gibi 'f5'
dizesini yorumluyor bize gösteriyor.
Benimle bugüne kadar? Burada örnek uyguladığımızda 2. böyle olur
Example #2
$a = '';
$b = $a['f5'];
$a
sıfır uzunlukta bir dize. İkinci satır $b= $a[0];
aynıdır - yani, ikinci satır bir sıfır uzunlukta dize ilk karakter için istiyor, ancak dize herhangi bir karakter içeriyor. Yani PHP dizin sadece yok bildirerek, aşağıdaki hata atıyor:
Notice: Uninitialized string offset: 0 in C:\websites\tcv3\wc2009\htdocs\aatest_array.php on line 3
Bunlar gevşek yazdığınız dilinde programlama sert darbelere vardır.