是否可以使用带有两个条件的if esle语句?
我有这段代码......
if ($current_page == 1)
然而,我可以写它,所以它是这样的
if ($total_pages ==1 $current_page < $total_pages)
我自己尝试过这几种方法,但似乎无法让它发挥作用。
任何想法都会受到赞赏,
代码
echo "$current_page"; echo "$total_pages";
if ($current_page >= 1 && ($current_page < $total_pages)) { echo "next button should be here"; } else {echo "Nothing"; }
请看下面的链接,你可以看到它是第1页的第4页,它到达了没有任何部分。什么时候应该在这里显示下一个按钮。
Php Code
$pageNum = $_GET['page'];
$engine = $_GET['engine'];
$manid = $_GET['manid'];
$mgid = $_GET['mgid'];
$file = 'http://mywebsite.com/page.xml?apikey=****&vid=****&limit=10&mgid='. $mgid.'&engine='. $engine.'&manid='.$manid.'&page=' . $pageNum;
if(!$xml = simplexml_load_file($file))
exit('Failed to open '.$file);
$total_pages = $xml->results->attributes()->totalPages;
$current_page = $xml->results->attributes()->currentPage;
$total_results = $xml->results->attributes()->totalResults;
$count = 0;
$max = 2;
foreach($xml->year as $year){
$count++;
echo '<td class="manu">'. "<a href='exact.php?manid=".$manid."&engine=".$engine."&mgid=".$mgid."&year=".$year['name']."'>".$year['name']."</a>";' </td>';
if($count >= $max){
$count = 0;
echo '</tr><tr>';
}
}
$pageNum = $current_page = $xml->results->attributes()->currentPage;
if ($current_page == 1) { } else {
echo "<a href='years.php?page=".($pageNum - 1)."&engine=".($engine)."&manid=".($manid)."&mgid=".($mgid)."'><img src='../images/previous.fw.png' width='130' height='92' /></a>";
}
echo "$current_page"; echo "$total_pages";
if ($current_page >= 1 && ($current_page < $total_pages)) {
echo "next button should be here";
} else {
echo "Nothing";
答案 0 :(得分:5)
我不确定你在这里想要完成什么逻辑,但你可以用这种方式测试两个条件:
// if total pages are equal to 1 or 1 is less than total pages
if (($total_pages == 1) || (1 < $total_pages))
如果您希望比较当前页面的总页数少于当前页面的数量,并且当前页面的编辑大于1,您可以这样做:
if ($current_page > 1 && ($current_page < $total_pages))
或者,如果您只是想检查total_pages是否大于或等于1,您可以这样做:
if ($total_pages >= 1)
答案 1 :(得分:4)
您实际上可以根据需要将comparison operators分隔为logical operators。
<?php
if(($value [Comparison Operator] $value) [Logical Operator] ($value [Comparison Operator] $value)){
//do something
}
?>
$a == $b Equal
$a === $b Identical
$a != $b Not equal
$a <> $b Not equal.
$a !== $b Not identical
$a < $b Less than
$a > $b Greater than
$a <= $b Less than or equal to
$a >= $b Greater than or equal to
$a and $b And
$a or $b Or
$a xor $b Xor
! $a Not
$a && $b And
$a || $b Or
答案 2 :(得分:2)
if语句失败的原因是因为它希望$current_page
和$total_pages
都是整数,但它们不是。
从您发布的var_dump
的结果中可以看出,这两个变量都包含足够复杂的对象,无法将它们隐式转换为整数。
尝试在if语句之前添加以下代码:
$current_page = (int)$current_page[0];
$total_pages = (int)$total_pages[0];
到目前为止,您的问题与您最初提出的问题无关......
答案 3 :(得分:1)
如果您想要满足这两个条件,请使用 AND&amp;&amp;
if(($b > $a) && ($d > $f)
对于其中任何一个匹配使用 OR ||
if(($b > $a) || ($d > $f)
有关完整参考,请参阅:http://php.net/manual/en/language.operators.comparison.php