首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >if(! $pages ) if what is not $pages I not get it (!

if(! $pages ) if what is not $pages I not get it (!
EN

Stack Overflow用户
提问于 2013-02-10 06:38:03
回答 4查看 78关注 0票数 0

下面是我试图理解的分页函数中的以下代码,我不理解的部分是if(!pages){ $pages =1)},它们是指什么。如果不是$pages变量。我想说的是,如果不是什么,那么正在比较的页面变量是什么。我很困惑

代码语言:javascript
运行
复制
if($pages == '')
     {
         global $wp_query;
         $pages = $wp_query->max_num_pages;
         if(!$pages)
         {
             $pages = 1;
         }
     } 

这是完整的函数,我试着一段一段地理解它,这样我就可以重写,而不需要在分页中只有右和左的数字。

代码语言:javascript
运行
复制
function kriesi_pagination($pages = '', $range = 2)
{  
     $showitems = ($range * 2)+1;  

     global $paged;
     if(empty($paged)) $paged = 1;

     if($pages == '')
     {
         global $wp_query;
         $pages = $wp_query->max_num_pages;
         if(!$pages)
         {
             $pages = 1;
         }
     }   

     if(1 != $pages)
     {
         echo "<div class='pagination'>";
         if($paged > 2 && $paged > $range+1 && $showitems < $pages) echo "<a href='".get_pagenum_link(1)."'>&laquo;</a>";
         if($paged > 1 && $showitems < $pages) echo "<a href='".get_pagenum_link($paged - 1)."'>&lsaquo;</a>";

         for ($i=1; $i <= $pages; $i++)
         {
             if (1 != $pages &&( !($i >= $paged+$range+1 || $i <= $paged-$range-1) || $pages <= $showitems ))
             {
                 echo ($paged == $i)? "<span class='current'>".$i."</span>":"<a href='".get_pagenum_link($i)."' class='inactive' >".$i."</a>";
             }
         }

         if ($paged < $pages && $showitems < $pages) echo "<a href='".get_pagenum_link($paged + 1)."'>&rsaquo;</a>";  
         if ($paged < $pages-1 &&  $paged+$range-1 < $pages && $showitems < $pages) echo "<a href='".get_pagenum_link($pages)."'>&raquo;</a>";
         echo "</div>\n";
     }
}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-02-10 07:12:38

这有几个部分:

  • TrueFalse是可以保存在变量中的值。这种类型的值称为布尔值。您可以先说$c = ($a == $b);,然后再说if ($c) { ... },而不是if ($a == $b) { ... }
  • 在PHP中(但不是在所有语言中),如果你把一个非布尔变量当做布尔值来对待(例如用if测试它,或者用andor组合它),它就不会是一个错误,并且该变量将使用特定的规则进行转换。基本上,除了0、NULL、空数组、空字符串和其他一些可以转换为false (它们是“false”)的东西之外,大多数东西都会转换为真(它们是“真实的”)。

因此,示例中的if (!$pages) { $pages = 1; }表示,如果页面数量为零,请确保至少有一个页面。这是if ($pages == 0)的一种更短的说法。

票数 2
EN

Stack Overflow用户

发布于 2013-02-10 06:57:43

if不是页面有趣的if语句里面的代码哈。

您的代码将$wp_query对象“全球化”,以便在函数的作用域中可以访问它。然后将$pages设置为$wp_query->max_num_pages。然后检查该值以确定是否执行if。这是如何工作的有点棘手,但这是你的。

PHP considers several things to be FALSE

  • boolean FALSE itself
  • 0(零)

0.0 (零)

  • 空字符串,字符串“0”

<

  • >H116一个零元素数组
  • 一个零成员变量的对象(仅PHP4)
  • 特殊类型NULL (包括从空标签创建的未设置的variables)
  • SimpleXML对象

如果这些都不匹配,则$pages将为true,这通常会触发if执行,但!与之相反。因此,如果$pages设置为某个真值,则if条件为false,并且if不会运行--不运行$pages。如果将$pages设置为某个pages值,则if条件为true,它将执行,并将页面设置为1。

票数 2
EN

Stack Overflow用户

发布于 2013-02-10 06:53:05

该条件检查$pages是否为0。布尔值truefalse通常分别由二进制文件10定义。因此,if(!$pages)意味着“如果$pages的值为false (或0),则执行条件主体并将$pages设置为1”。相反,if($pages)指的是execute the condition body if $pages > 0

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14792404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档