我希望扩展我的PHP知识,我遇到了一些我不确定它是什么或如何搜索它的东西.我正在看php.net的isset代码,我明白了isset($_GET['something']) ? $_GET['something'] : ''
我理解正常的isset操作,比如if(isset($_GET['something']){ If something is exists, then it is set and we will do something }但是我不明白?,重复再次获取,或者是''.有人可以帮我解决这个问题,或者至少指出我正确的方向吗?
uın*_*ɐɥs 71
它通常被称为"速记"或三元运算符.
$test = isset($_GET['something']) ? $_GET['something'] : '';
Run Code Online (Sandbox Code Playgroud)
手段
if(isset($_GET['something'])) {
$test = $_GET['something'];
} else {
$test = '';
}
Run Code Online (Sandbox Code Playgroud)
要打破它:
$test = ... // assign variable
isset(...) // test
? ... // if test is true, do ... (equivalent to if)
: ... // otherwise... (equivalent to else)
Run Code Online (Sandbox Code Playgroud)
要么...
// test --v
if(isset(...)) { // if test is true, do ... (equivalent to ?)
$test = // assign variable
} else { // otherwise... (equivalent to :)
Run Code Online (Sandbox Code Playgroud)
这被称为三元运算符,它主要用于代替if-else语句.
在您给出的示例中,可以使用它从给定的isset返回true的数组中检索值
isset($_GET['something']) ? $_GET['something'] : ''
Run Code Online (Sandbox Code Playgroud)
相当于
if (isset($_GET['something'])) {
$_GET['something'];
} else {
'';
}
Run Code Online (Sandbox Code Playgroud)
当然除非你将它分配给某些东西,否则它没什么用处,甚至可能为用户提交的值分配一个默认值.
$username = isset($_GET['username']) ? $_GET['username'] : 'anonymous'
Run Code Online (Sandbox Code Playgroud)
从PHP 7开始,您可以将其编写得更短:
$age = $_GET['age']) ?? 27;
Run Code Online (Sandbox Code Playgroud)
这意味着如果在网址中提供了年龄参数,则将其设置为$agevar或默认为27
| 归档时间: |
|
| 查看次数: |
170321 次 |
| 最近记录: |