PHP: ben şimdi ne var daha sonra bir dizi içinde nesneye erişmek için daha iyi bir yolu nedir?

1 Cevap php

$ Jj_post print_r aracılığıyla dizi çıktısı hata ayıklama olduğunu. Bu değişken nesnenin bir dizidir

Array
(
    [0] => stdClass Object
        (
            [ID] => 2571
        )

)

i gibi bu kodu aracılığıyla nesne özelliği, kimliği, erişim:

$jj_post_id = $jj_post[0]; 
$jj_ID = $jj_post_id->ID;

böylece, daha iyi bir şekilde bu bildiğim tek şey ve ben kod biraz uzun hissediyorum neden var?

1 Cevap

Eğer $ jj_post zaman bir dizi olacak, ve her zaman bir stdClass nesneyi içerecek emin iseniz Peki, o zaman şöyle erişmek olmalıdır:

$jj_ID = $jj_post[0]->ID;

Fakat bu her zaman, bazen değil. Eğer doğrulamak için bazı kontroller yapmak gerekir böylece her zaman güvenli ve mevcut alanlara erişmek bir değişkenin içeriğini bilmiyor olabilir.

Iyi bir iş yapar ise ne kadar uzun kod bir sorun olmamalı edilir.

Benim düşünceme göre, iki seçeneğiniz var:

 $jj_ID = @$jj_post[0]->ID;

Bu çalışma zamanı hataları sessizce ele, ve standart çıktıya atılmış değildir sağlar.

Başka bir yol, her tür varlığı için kesinlikle kontrol etmek olacaktır:

$jj_ID = "";
if(is_array($jj_post))
{
  $jj_post_id = $jj_post[0]; 
  if(!empty($jj_post_id))
  {
    $jj_ID = $jj_post_id->ID;
  }
}