PHP の empty()
で true
が出る値を配列にキャストする時の動作のメモ。
テストコード
123456789101112131415
echo print_r( 'null', true ) . PHP_EOL;var_dump( ( array ) null );var_dump( [ null ] );echo '----------------------' . PHP_EOL;echo print_r( 'false', true ) . PHP_EOL;var_dump( ( array ) false );var_dump( [ false ] );echo '----------------------' . PHP_EOL;echo print_r( "''", true ) . PHP_EOL;var_dump( ( array ) '' );var_dump( [ '' ] );echo '----------------------' . PHP_EOL;echo print_r( '0', true ) . PHP_EOL;var_dump( ( array ) 0 );var_dump( [ 0 ] );
結果
12345678910111213141516171819202122232425262728293031323334353637
nullarray(0) {}array(1) { [0] => NULL}----------------------falsearray(1) { [0] => bool(false)}array(1) { [0] => bool(false)}----------------------''array(1) { [0] => string(0) ""}array(1) { [0] => string(0) ""}----------------------0array(1) { [0] => int(0)}array(1) { [0] => int(0)}
要は、( array ) null
が他の 0
とか false
と違って空の配列を返す。