php issetとかis_nullとかemptyとか

空判定を適当にやっていたので復習

$emp_str = "";
$emp_arr = [];
$null_thing = null;
$zero_num = 0;
$zero_str = "0";

//empty()関数
if(empty($emp_str)){
  print('実行される');
}
if(empty($emp_arr)){
  print('実行される');
}
if(empty($null_thing)){
  print('実行される');
}
if(empty($zero_num)){
  print('実行される');
}
if(empty($zero_str)){
  print('実行される');
}
if(empty($something)){
  print('実行される');
}


//is_null
if(is_null($emp_str)){
  print('実行されない');
}
if(is_null($emp_arr)){
  print('実行されない');
}
if(is_null($null_thing)){
  print('実行される');
}
if(is_null($zero_num)){
  print('実行されない');
}
if(is_null($zero_str)){
  print('実行されない');
}
if(empty($something)){
  print('実行される');
}

//isset()関数(否定)
if(!isset($emp_str)){
  print('実行されない');
}
if(!isset($emp_arr)){
  print('実行されない');
}
if(!isset($null_thing)){
  print('実行される');
}
if(!isset($zero_num)){
  print('実行されない');
}
if(!isset($zero_str)){
  print('実行されない');
}
if(!isset($something)){
  print('実行される');
}

//直接真偽値判定(否定)
if(!$emp_str){
  print('実行される');
}
if(!$emp_arr){
  print('実行される');
}
if(!$null_thing){
  print('実行される');
}
if(!$zero_num){
  print('実行される');
}
if(!$zero_str){
  print('実行される');
}
if(!$something){
  print('実行される');
}

文字列の0が空判定されるのは頭の片隅に置いておこうと思いました