我正在挖掘我曾经和我的一个朋友一起编写的代码。已经有一段时间了,我无法弄清楚这个片段的目的是什么:
$page = isset($_REQUEST['page']) ? $_REQUEST['page'] : "home.php";
它几乎是该 php 文件中唯一的代码。
非常感谢。
首先尝试阅读一些关于Superglobals的内容,以了解为什么以及何时使用 $_REQUEST 然后检查方法isset() 最后是 if 语句的 sintax
if(condition) doSomething else doSomething;
所以基本上你检查 $_REQUEST['page'] 是否有一个值(不为空或未设置)。如果有,则将该值放入变量 $page。否则,您将 $page 设置为“home.php”。
希望它有所帮助!
它与
if (isset($_REQUEST['page'])){
$page = $_REQUEST['page'] ;
} else {
$page = "home.php" ;
}
它被称为Ternary operator
。为您的代码提供一些可读性。
(expr) ? (value if true) : (value if false)
基本上它是ternary operator
检查页面变量是通过POST
方法还是GET
方法设置的条件。REQUEST
方法可以同时检查。如果已设置,则请求页面值$_REQUEST['page']
将分配给$page
变量,否则默认将“home.php”分配$page
给与
if (isset($_REQUEST['page'])){
$page = $_REQUEST['page'] ;
} else {
$page = "home.php" ;
}
这是一个三元运算符。它是单行 if 语句。
像这样读
if (isset($_REQUEST['page'])) {
$page = $_REQUEST['page'];
} else {
$page = 'home.php';
}
这是三元运算符,形式为:
test ? true-value : false-value
它计算表达式之前的部分?
。如果为真,true-value
则计算并返回表达式,否则false-value
计算并返回表达式。
所以你的代码检查是否$_REQUEST['page']
设置。如果是,$page
则设置为其值,否则$page
设置为home.php
。
$_REQUEST
是一个预定义变量,包含从 URL(如$_GET
)或表单字段(如$_POST'
)设置的参数。