(Teşekkür ederim): Birisi şu PHP 5.2.13 ile bir hata olduğunu teyit misiniz
<?php
session_start();
if (!is_array($_SESSION["breadcrumb"]["trail"]))
{
$_SESSION["breadcrumb"]["trail"][] = "trail";
}
foreach ($_SESSION["breadcrumb"]["trail"] as $breadcrumb)
{
echo $breadcrumb;
}
?>
Yukarıdaki PHP script çalıştırmak 3. kez çöküyor. Foreach () döngü döngü içinde kullanılan iç değişken iç içe $ _SESSION dizi adı ile eşleşen çünkü iç içe $ _SESSION dizi mendil bir (yanlış) bir yan etkisi var gibi görünüyor. Sadece farklı giderir sorun şey iç foreach adını () değişken değişiyor.
Not: açık oturum değişkenleri Script 3 kez çalıştırmadan önce.
Yine, "$ the_breadcrumb" için "$ kırıntı" değiştirerek sorunu giderir. Ama foreach () döngüsü hiçbir yan etkisi bulunmamaktadır. Not: $ kırıntıdaki kapsamı ["kırıntı"], hiçbir çarpışma olmalıdır $ _SESSION kapsam olarak aynı olmadığı.
Dizisinde print_r () yapıyor (doğru) ikinci kez nüfuslu (doğru), ilk kez boşaltın ve yanlışlıkla üçüncü kez ("Array ([kırıntı] => iz)" olarak belirtilen diziyi gösterir unutmayın İç içe array) sildi olmuştur.
The error in the PHP error log from the 3rd run: PHP Fatal error: Cannot use string offset as an array on line 5
Sadece PHP 5.2.13 - Sorun PHP 5.3 üzerinde bir sorun değildir. Ben PHP sitesi (php.net) üzerine PHP changelog bu konuyla ilgili herhangi bir not bulamadı ve benim canlı sitede 5.2.13 kullanmanız gerekir, bu yüzden kimse onaylamak olabilir umuduyla buraya post ediyorum. Ben de php.net üzerinde bir hata raporu gönderdiniz.
Thanks, Dan Nissenbaum
Expected result:
5. satırda yok PHP 5.2.13 crash.
Actual result:
5. satırdaki PHP 5.2.13 çöker.