使用PHP 5.3?:运算符
有了这个测试页面:
$page   = (int) $_GET['page'] ?: '1';
echo $page;
我不明白当页面未定义时我得到的输出:
Request   Result
?page=2   2
?page=3   3
?page=    1
?         error: Undefined index page
为什么错误信息? 它是PHP 5.3; 为什么不回显“1”?
正确的方式(在我看来)是:
$page = isset($_GET['page']) ? (int) $_GET['page'] : 1;
  即使你使用了新的风格,你也会遇到?page=0 (因为0评估为false)。  “新”并不总是更好......你必须知道何时使用它。 
不幸的是,您不能将其用于您想要使用它的目的:
表达式expr1?:如果expr1的计算结果为TRUE,则expr3返回expr1,否则返回expr3。
  所以你仍然必须使用isset或empty() - ?:操作符不包含isset检查。  你需要使用的是: 
$page = !empty($_GET['page']) ? (int)$_GET['page'] : 1;
为了完整性,另一种实现方法是拉运营商级别:
 $page = (int)$_GET["page"]  or  $page = 1;
许多人认为这是不可读的,尽管它比isset()结构更短。
或者,如果您正在使用输入对象或任何其他实用程序类:
 $page = $_GET->int->default("page", 1);
