Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save mugyu/4a654a67922a53809bc4212b949f7d57 to your computer and use it in GitHub Desktop.
Save mugyu/4a654a67922a53809bc4212b949f7d57 to your computer and use it in GitHub Desktop.
PHPに於けるNull合体演算子とエルビス演算子
<?php
// ?? - null合体演算子(左辺がnull or 未定義の場合に右辺を返す)
// ?: - エルビス演算子(左辺がfalseとequalityな場合に右辺を返す)
unset($hoge);
$hoge = ($hoge ?? 1) ?: 2;
var_dump($hoge);
$hoge = NULL;
$hoge = ($hoge ?? 1) ?: 2;
var_dump($hoge);
$hoge = FALSE;
$hoge = ($hoge ?? 1) ?: 2;
var_dump($hoge);
$hoge = 0;
$hoge = ($hoge ?? 1) ?: 2;
var_dump($hoge);
$hoge = 10;
$hoge = ($hoge ?? 1) ?: 2;
var_dump($hoge);
// => int(1)
// => int(1)
// => int(2)
// => int(2)
// => int(10)
echo "---------------------------------\n";
// like
unset($hoge);
if ( ! isset($hoge)) {
$hoge = 1;
} elseif ($hoge == FALSE) {
$hoge = 2;
}
var_dump($hoge);
$hoge = NULL;
if ( ! isset($hoge)) {
$hoge = 1;
} elseif ($hoge == FALSE) {
$hoge = 2;
}
var_dump($hoge);
$hoge = FALSE;
if ( ! isset($hoge)) {
$hoge = 1;
} elseif ($hoge == FALSE) {
$hoge = 2;
}
var_dump($hoge);
$hoge = 0;
if ( ! isset($hoge)) {
$hoge = 1;
} elseif ($hoge == FALSE) {
$hoge = 2;
}
var_dump($hoge);
$hoge = 10;
if ( ! isset($hoge)) {
$hoge = 1;
} elseif ($hoge == FALSE) {
$hoge = 2;
}
var_dump($hoge);
// => int(1)
// => int(1)
// => int(2)
// => int(2)
// => int(10)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment