2015-05-04 33 views
-3

Im包括一个html块,并且包含一些基于if语句的echo语句。如果我使用为什么如果statings失败并带有两个参数

<? 
    if($rows['business_type'] !== "Hotel" || "Bed & Breakfast") 
    { 
?> 


    <div id="mini_titles"><h2>Opening times</h2></div> 

    <div id="complete_info_wrapper"> 
      <div id="complete_info_title"><p>Monday</p></div> 
      <div id="complete_info_details_opening"> 
       <p> 
<?php echo $rows1['opening_monday_from']; ?> - 
<?php echo $rows1['opening_monday_to']; ?> 
       </p> 
      </div> 
    </div> 
    <div id="complete_info_wrapper"> 
     <div id="complete_info_title"><p>Tuesday</p></div> 
     <div id="complete_info_details_opening"> 
      <p> 
<?php echo $rows1['opening_tuesday_from']; ?> - 
<?php echo $rows1['opening_tuesday_to']; ?> 
      </p> 
     </div> 
     </div> 

     <div id="complete_info_wrapper"> 
      <div id="complete_info_title"><p>Wednesday</p></div> 
      <div id="complete_info_details_opening"> 
       <p> 
<?php echo $rows1['opening_wednesday_from']; ?> - 
<?php echo $rows1['opening_wednesday_to']; ?> 
       </p> 
      </div> 
     </div> 

     <div id="complete_info_wrapper"> 
      <div id="complete_info_title"><p>Thursday</p></div> 
      <div id="complete_info_details_opening"> 
       <p> 
<?php echo $rows1['opening_thursday_from']; ?> - 
<?php echo $rows1['opening_thursday_to']; ?> 
       </p> 
      </div> 
     </div> 

     <div id="complete_info_wrapper"> 
      <div id="complete_info_title"><p>Friday</p></div> 
      <div id="complete_info_details_opening"> 
       <p> 
<?php echo $rows1['opening_friday_from']; ?> - 
<?php echo $rows1['opening_friday_to']; ?> 
       </p> 
      </div> 
     </div> 

     <div id="complete_info_wrapper"> 
      <div id="complete_info_title"><p>Saturday</p></div> 
      <div id="complete_info_details_opening"> 
       <p> 
<?php echo $rows1['opening_saturday_from']; ?> - 
<?php echo $rows1['opening_saturday_to']; ?> 
       </p> 
      </div> 
     </div> 

     <div id="complete_info_wrapper"> 
      <div id="complete_info_title"><p>Sunday</p></div> 
      <div id="complete_info_details_opening"> 
       <p> 
<?php echo $rows1['opening_sunday_from']; ?> - 
<?php echo $rows1['opening_monday_to']; ?> 
       </p> 
      </div> 
     </div> 
<?php 
    } 

?> 

的,如果statment工作只有一个,即:

if($rows['business_type'] !== "Hotel"){} 

但只要我添加||or&&,或and它失败,无论显示第二。

我确定它有些愚蠢和简单的即时通讯丢失。

请帮助,谢谢。

+2

你不是比较'“床和早餐”'任何东西。 – chris85

+0

if($ rows ['business_type']!==“Hotel”|| $ rows ['business_type']!==“Bed&Breakfast”)' –

+0

if($ rows ['business_type']!==“如果($行['business_type']!= || $ rows ['business_type']!=“Bed&Breakfast”) –

回答

4

在,如果如果条件$rows['business_type'] !== "Hotel"为真,那么条件将永远是正确的。因为if ("Bed & Breakfast")true。所以true || true将是true

它应该是 -

if($rows['business_type'] !== "Hotel" || $rows['business_type'] != "Bed & Breakfast") 

或者你也可以做到 -

if (!in_array($rows['business_type'], array("Hotel", "Bed & Breakfast"))) 
+0

为什么downvote? –

+0

谢谢。阵列效果很好:) –

0

尝试:

if($rows['business_type'] !== "Hotel" || $rows['business_type'] !== "Bed & Breakfast") 
0

它,因为它有一些错字:

变化

<? 
if($rows['business_type'] !== "Hotel" || "Bed & Breakfast") 
// This //statement will always return true, because even if first condition 
// satisfies or not, 'Bed & Breakfast' will always return true (it is a 
//string which is not empty. 
{ 
?> 
// TRUE || TRUE --> TRUE 
// FALSE || TRUE --> TRUE 
// TRUE || FALSE --> TRUE 
// FALSE || FALSE --> FALSE 

<? 
if($rows['business_type'] !== "Hotel" || $rows['business_type'] !== "Bed & Breakfast") // PUT YOUR CONDITION CORRECTLY. 
{ 
?> 
0

通过这种方式无法与两个值进行比较。使用in_array

if (!in_array($rows['business_type'], array("Hotel", "Bed & Breakfast"))) {...} 

或者usign ||

if ($rows['business_type'] !== "Hotel" || $rows['business_type'] !== "Bed & Breakfast") {...} 
0

“床&早餐” 是一个字符串不是一个比较,它总是返回true。所以x or true总是等于true。这是你的if语句的问题。如你预期 这可能会实现:

if($rows['business_type'] !== "Hotel" || $rows['business_type'] !== "Bed & Breakfast") 
0

尝试阵列方法

if (in_array(array('Hotel', 'Bed'), $rows['business_type'])) { 
    echo "'Bed' was found\n"; 
} 
相关问题