Ya bir şey eksik ya da PHP 5.6.17'de bir hata buldum.Error_log() öğesini kesen, ancak print_r() öğesini bozmayan bir dizi var ve başka bir şekilde mükemmel çalışıyor
Verilerimi error_log() ile değiştirdiğimde (düzenleme: print_r ($ dizi, doğru) kullanarak), bir dizeyi geçiriyorum) veriyorum.
Array
(
[
Normalde görmeyi umduğum yer;
Array
(
[person_id]=> 123456
)
ilk dizi anahtar çıkışı sona eriyor sanki ama ilk dizi anahtar Bunda tuhaf bir şey boş bir altdizilim olduğunu.
Garip bir şekilde, print_r() işlevini kullandığımda diziyi gayet iyi basar ve dizileri işleyen tüm dizi tabanlı PHP işlevlerini veya bunların üzerinde yinelemenin diziyle ilgili bir sorunu yoktur.
Anahtarlarımdan bazıları şöyle;
Array
(
[per_roles] => Array
(
)
[per_roles_retrieved] =>
[per_cache] => Array
(
)
[*member] =>
[*addresses] =>
[*marketing_preferences] =>
[*suppliers] =>
[_table] => address
[id] => 454545
[*exists] => 1
[*_related_objects] => Array
(
)
[*_related_object] => Array
(
)
[first_name] => John
[middle_name] =>
[last_name] => Smith
)
Sorun nedir ve yıldız mı?
Cevabı buldum. Sorun, dizinin bir dizi olarak atanmış bir nesneden gelmesidir. Bir dizi olarak yayınlandığında bu nesnenin korunan özellikleri, anahtarları "null karakterlerle" null karakterlerle doldurulur. Bu null karakterleri, hata dizisinin sonuna ulaştığını düşünmek için error_log'a (bir kez print_r ($ var, true)) neden oldu, böylece çıktı durdu. Düzeltmek için, bu boş karakterleri str_replace veya yerine print_r kullanmalısınız. –