记几个 php 的坑 - (sunznx) 振翅飞翔
26 July 2019

empty/isset/array_key_exists

$arr = [];
$arr['key'] = null;

isset($arr['key'])              // false
array_key_exists('key', $arr)   // true


empty("0")                      // true
empty("00")                     // false
empty(' ')                      // false


11 == "11"                      // true
0 == "a"                        // true

array_merge/+

$arr1 = ["a", "b"]
$arr2 = ["c", "d"]

$arr1 + $arr2                   // ["a", "b"]
array_merge($arr1, $arr2)       // ["a", "b", "c", "d"]


$arr1 = ["key1" => "a", "key2" => "b"]
$arr2 = ["key1" => "c", "key2" => "d"]

$arr1 + $arr2                   // ["a", "b"]
array_merge($arr1, $arr2)       // ["c", "d"]

unset 之后,index 还会继续存在

$arr = [0, 1];
unset($arr[0]);
unset($arr[1]);

var_dump($arr);
// array(0) {
// }

$arr[] = 0;
var_dump($arr);
// array(1) {
//   [2] =>
//   int(0)
// }



$arr = [0, 1];
unset($arr[0]);
unset($arr[1]);

var_dump($arr);
// array(0) {
// }

$arr = array_merge($arr, [0]);
var_dump($arr);
// array(1) {
//   [0] =>
//   int(0)
// }