Я немного смущен. В документации по PHP говорится:
// Example usage for: Null Coalesce Operator
$action = $_POST['action'] ?? 'default';
// The above is identical to this if/else statement
if (isset($_POST['action'])) {
$action = $_POST['action'];
} else {
$action = 'default';
}
Но мой собственный пример говорит совсем о другом:
echo "<pre>";
$array['intValue'] = time();
$array['stringValue'] = 'Hello world!';
$array['boolValue'] = false;
$resultInt = isset($array['intValue']) ?? -1;
$resultString = isset($array['stringValue']) ?? 'Another text';
$resultBool = isset($array['boolValue']) ?? true;
var_dump($resultInt);
var_dump($resultString);
var_dump($resultBool);
echo '<br/>';
if(isset($array['intValue'])) $_resultInt = $array['intValue'];
else $_resultInt = -1;
if(isset($array['stringValue'])) $_resultString = $array['stringValue'];
else $_resultString = 'Another text';
if(isset($array['boolValue'])) $_resultBool = $array['boolValue'];
else $_resultBool = true;
var_dump($_resultInt);
var_dump($_resultString);
var_dump($_resultBool);
echo "</pre>";
Мой вывод:
bool(true)
bool(true)
bool(true)
int(1534272962)
string(12) "Hello world!"
bool(false)
Итак, как показывает мой пример, условие if не приводит к тому же результату, что и оператор объединения null, как говорится в документации. Может кто-нибудь объяснить мне, что я сделал не так?
Благодарю вас!