【发布时间】:2012-12-03 05:11:26
【问题描述】:
我有这样的功能
public function get_page($position) {
switch ($position) {
case "current":
echo "current";
return $this->current_page;
break;
case "first":
echo "first";
return $this->current_page >= 3 ? 1 : false;
break;
case "last":
echo "last";
return $this->current_page <= $this->total_pages() - 2 ? ceil($this->count / $this->nb_items_to_show) : false;
break;
case "previous":
echo "previous";
return $this->current_page - 1 >= 1 ? $this->current_page - 1 : false;
break;
case "next":
echo "next";
return $this->current_page + 1 <= $this->total_pages() ? $this->current_page + 1 : false;
break;
case is_int($position):
echo "int";
if ($position >= 1 && $position <= $this->total_pages()) {
return $position;
} else {
return false;
}
break;
default:
echo "default";
return false;
break;
}
}
当我调用该函数时,它适用于除 0 之外的所有参数,并在开关中进入“当前”情况。
$paginator->get_page(0);
如果我用引号“0”调用函数,它可以工作。 但是函数可以这样调用
$paginator->get_page($paginator->get_page("current") - 2);
如何调用参数为 0 的函数?
【问题讨论】:
-
是
$paginator->get_page(0);不等于$paginator->get_page('first');? -
我认为缺少某些代码...如果输入为 0 或“0”,则 switch 语句应为默认值
-
参数 0 怎么变成“当前”?它不应该是默认的吗?或者可能是 is_int()?
-
也许
switch使用==而不是=== -
这是一个分页系统。基于当前页面,我想显示“当前页面 - 2”。我这样调用函数 $paginator->get_page($paginator->get_page("current") - 2)。当当前页面 = 2 时,“当前页面 - 2 = 0”不存在并应返回 false(它应该在 is_int 的情况下出现,但在“当前”的情况下出现!!)
标签: php function parameters int switch-statement