This is a collection of questions that come up every now and then about syntax in PHP. This is also a Community Wiki, so everyone is invited to participate in maintaining this list.
It used to be hard to find questions about operators and other syntax tokens.¹
The main idea is to have links to existing questions on Stack Overflow, so it's easier for us to reference them, not to copy over content from …
我今天在一些PHP代码中看到了这个:
$items = $items ?: $this->_handle->result('next', $this->_result, $this);
Run Code Online (Sandbox Code Playgroud)
我不熟悉?:这里使用的运算符.它看起来像一个三元运算符,但是省略了判断谓词是否为真的表达式.这是什么意思?
<?PHP
require __DIR__.'/c.php';
if (!is_callable($c = @$_GET['c'] ?: function() { echo 'Woah!'; }))
throw new Exception('Error');
$c();
?>
Run Code Online (Sandbox Code Playgroud)
Twitto使用从PHP 5.3开始提供的几个新功能:
在PHP 5.3 中,数字2对?:做什么?
另外,匿名函数是什么意思?那不是已经存在了一段时间的东西吗?
php ternary-operator language-construct conditional-operator php-5.3
PHP中有哪些?和:运算符?
例如:
(($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER)
Run Code Online (Sandbox Code Playgroud) $items = (isset($_POST['items'])) ? $_POST['items'] : array();
Run Code Online (Sandbox Code Playgroud)
我不明白这段代码的最后一段" ? $_POST['items'] : array();"
这些代码组合到底做了什么?
我使用它从html文本框中获取一堆值并将其存储到会话数组中.但问题是,如果我尝试在文本框中重新提交数据,新的数组会话将完全覆盖旧的会话数组空白和所有空格.
我只想覆盖已经有值的数组中的位置.如果用户决定只填写几个文本框,我不希望先前的会话数组数据被空格(来自空白文本框)覆盖.
我认为上面的代码是问题所在,但我不确定它是如何工作的.请赐教.
可能重复:
参考 - 这个符号在PHP中意味着什么?
我一直在用if/else或者一年左右做条件.看一些新代码,我看到一个似乎使用的条件?而:不是if和else.我想了解更多有关此内容的信息,但我不知道该如何找到解释其工作原理的文章.我该怎么做?
php ×6
syntax ×3
conditional ×2
arguments ×1
coding-style ×1
operators ×1
php-5.3 ×1
symbols ×1