2014-04-08 5 views
0

이 변수는 $ipCheck = $home_model->checkIP($id);이고 print_r은 $ipCheck입니다. 나는 결과를 얻고 있습니다.else if 배열 객체의 조건

[0] => stdClass Object 
     (
      [ID] => 330 
      [image_ID] => 44 
      [ip] => 192.168.1.197 
      [like_count] => 1 
      [favorite_count] => 0 
     ) 

    [1] => stdClass Object 
     (
      [ID] => 332 
      [image_ID] => 44 
      [ip] => 192.168.1.197 
      [like_count] => 0 
      [favorite_count] => 1 
     ) 

) 

는 지금은 favorite_count = 0 다른 favorite count 1favorite count 0 에코 경우 어떤 조건을 설정해야합니다.

이 상태로 시도했지만 작동하지 않습니다.

<?php if(isset($ipCheck[0]->favorite_count) == 0 or empty($ipCheck[0]->favorite_count)) { ?> 
    favorite count 0 
    <br /> 
<?php }else{ ?> 
    favorite count 1 
    <br /> 
<?php }?> 

언제나 받고 있습니다. favorite count 0. 이 상태를 해결하도록 도와 주시겠습니까? 나는 새로운 PHP를 배우고 있습니다. 네가 나를 도와 준다면, 나는 충분히 감사 할 것이다.

감사합니다.

+1

시도로 얻을 수있는'$ ipCheck [1]'과'if' 인수 및 참조 결과. 당신은 배열 = = –

+0

을 다루는 법을 배워야합니다. 전체 출력을 게시 했습니까? –

+0

당신은'$ ipCheck'의 각 요소를 반복하고 좋아하는 수를 확인해야합니다 – ElefantPhace

답변

2

내가 정확히 이해한다면 당신이 좋아하는 카운트 1을 갖고 싶습니다. 그 경우에 대해 :

$favorite=0; 
foreach($ipCheck as $obj){ 
    if(isset($obj->favorite_count) && $obj->favorite_count!=0) 
     {$favorite++;} 
} 
echo "favorite count ".$favorite."<br />"; 
+0

고마워요. –

1

isset 및 빈 반환, 반대, 부울 값. 변수가 비어 있으면 empty가 true를 반환하고, 변수가 모두 설정되지 않은 경우 모든 isset은 false를 반환합니다.

또한 당신 == 0 == 대신는 isset이 거짓 귀하는 isset을 반환하는 경우 정수 (수)

수를 필요로 === 사용 변수 유형 그렇게 거짓 의지 == 0 확인되지 0은 true를 반환합니다. 당신의 isset이 true를 반환하지만 0이면 if가 true를 반환하고 변수가 비어 있다면 true가 반환됩니다.

Empty는 정수, 더블 또는 문자열 인 경우 empty value으로 0을 허용합니다 (기본적으로 부울 0은 비어 있지 않으며 그 밖의 모든 것은 0입니다). 귀하의 경우 그것은 그것이 항상이되도록 강제합니다.

<?= 대신 <?php echo을 사용하지 마십시오. <?=은 환경에 따라 다르며 새 환경으로 이동할 때 코드를 깨뜨릴 수있는 특정 PHP 설정이 필요합니다.

다른 두 가지 메모의 코드 스 니펫에서 몇 가지 옵션을 볼 수 있습니다. foreach는이 검사의 경우 빈 값을 반복하지 않으므로 빈 검사는 중복됩니다 (그리고 여전히 여전히 사실입니다). 그러나 거기에서 사용 된 코드는 나쁘지 않습니다. 귀하의 경우에는

당신은 아마 그냥 모든`$ ipCheck [0]`에 만들기 위해 멀리

if(isset($ipCheck[0]->favorite_count)){ 
    echo "favorite count ". $ipCheck[0]->favorite_count; 
} 
+0

즉, 가정하면 물론 0 번 결과입니다. 각 객체를 반복하고 싶다면 foreach 루프를 사용하고 싶을 것입니다. –

관련 문제