0

我正在挖掘我曾经和我的一个朋友一起编写的代码。已经有一段时间了,我无法弄清楚这个片段的目的是什么:

$page = isset($_REQUEST['page']) ? $_REQUEST['page'] : "home.php";

它几乎是该 php 文件中唯一的代码。

非常感谢。

4

5 回答 5

2

首先尝试阅读一些关于Superglobals的内容,以了解为什么以及何时使用 $_REQUEST 然后检查方法isset() 最后是 if 语句的 sintax

if(condition) doSomething else doSomething;

所以基本上你检查 $_REQUEST['page'] 是否有一个值(不为空或未设置)。如果有,则将该值放入变量 $page。否则,您将 $page 设置为“home.php”。

希望它有所帮助!

于 2013-07-02T08:47:31.713 回答
2

它与

if (isset($_REQUEST['page'])){
  $page = $_REQUEST['page'] ;
} else {
  $page = "home.php" ;
}

它被称为Ternary operator。为您的代码提供一些可读性。

(expr) ? (value if true) : (value if false)
于 2013-07-02T08:38:32.407 回答
2

基本上它是ternary operator检查页面变量是通过POST方法还是GET方法设置的条件。REQUEST方法可以同时检查。如果已设置,则请求页面值$_REQUEST['page']将分配给$page变量,否则默认将“home.php”分配$page给与

if (isset($_REQUEST['page'])){
     $page = $_REQUEST['page'] ;
} else {
     $page = "home.php" ;
}
于 2013-07-02T08:38:58.447 回答
1

这是一个三元运算符。它是单行 if 语句。

像这样读

if (isset($_REQUEST['page'])) {
    $page = $_REQUEST['page'];
} else {
    $page = 'home.php';
}
于 2013-07-02T08:39:35.170 回答
1

这是三元运算符,形式为:

test ? true-value : false-value

它计算表达式之前的部分?。如果为真,true-value则计算并返回表达式,否则false-value计算并返回表达式。

所以你的代码检查是否$_REQUEST['page']设置。如果是,$page则设置为其值,否则$page设置为home.php

$_REQUEST是一个预定义变量,包含从 URL(如$_GET)或表单字段(如$_POST')设置的参数。

于 2013-07-02T08:41:30.097 回答