null代入とunset()の違い

変数

概要

 閲覧数:2296  投稿日:2017-08-28  更新日:2017-08-28  

配列要素の一部に対して処理を行なうと、違いが分かりやすい


コード

// 全ての PHP エラーを表示
//error_reporting(-1);

$var = "hoge";
var_dump($var); //string(4) "hoge"

//$var = unset($var);//unset()には、返り値がないため、パースエラーとなる
unset($var);
var_dump($var); //NULL

$x = NULL;  //ヌル型NULLを代入
unset($x);
var_dump($x); //NULL

$member = array();//配列作成
$member["name"] = "山田太郎";
print_r($member["name"]); // "山田太郎"
$member["name"] = null;
var_dump($member["name"]); //NULL

$member2 = array();//配列作成
$member2["name"] = "山田太郎";
print_r($member2["name"]); // "山田太郎"
unset($member2["name"]);
var_dump($member2["name"]); //NULL。Notice: Undefined index: name←エラーレベルを変更すると表示される

//unset
$arr[0]="1行目";
$arr[1]="2行目";
$arr[2]="3行目";

foreach ($arr as $line){print "$line<br>\n";}
print "<br><br>\n";
//1行目
//2行目
//3行目

unset($arr[1]);

foreach ($arr as $line){print "$line<br>\n";}
print "<br><br>\n";
//1行目
//3行目

echo "<pre>";
var_dump($arr);
echo "</pre>";
//array(2) {
//  [0]=>
//  string(7) "1行目"
//  [2]=>
//  string(7) "3行目"
//}

//NULL
$arr2[0]="4行目";
$arr2[1]="5行目";
$arr2[2]="6行目";

foreach ($arr2 as $line){print "$line<br>\n";}
print "<br><br>\n";
//4行目
//5行目
//6行目
$arr2[1]=NULL;

foreach ($arr2 as $line){print "$line<br>\n";}
print "<br><br>\n";
//4行目
//
//6行目

echo "<pre>";
var_dump($arr2);
echo "</pre>";
//array(3) {
//  [0]=>
//  string(7) "4行目"
//  [1]=>
//  NULL
//  [2]=>
//  string(7) "6行目"
//}



結果

string(4) "hoge" NULL 

NULL 

山田太郎NULL 

山田太郎NULL 

1行目
2行目
3行目


1行目
3行目


array(2) {
  [0]=>
  string(7) "1行目"
  [2]=>
  string(7) "3行目"
}
4行目
5行目
6行目


4行目

6行目


array(3) {
  [0]=>
  string(7) "4行目"
  [1]=>
  NULL
  [2]=>
  string(7) "6行目"
}



タグ


null  unset 





「{ }」も「.」も使用せず、文字列の中で変数を展開する



週間人気ページランキング / 8-3 → 8-9
順位 ページタイトル抜粋 アクセス数
1 URLから、トップページ(index.html)判定 | ルーティング 7
1 配列キー内に「指定文字列が含まれるキー」と「その値」を抽出して、新しい配列を返す | 配列(型) 7
2 指定文字列より前を取得 | 文字列(テキスト処理) 5
2 PHPで最後の「指定区切り文字」より後ろを取得 | 配列(型) 5
3 8桁の生年月日数字を分解 | 文字列(テキスト処理) 4
3 (データベースなどから取得した)多次元配列の値と、一次元配列を比較して、「一致」及び「増減」を返す | 配列(型) 4
4 後ろから3文字削除 / 「18:00:00」→「18:00」 | 文字列(テキスト処理) 3
4 「指定文字」から「指定文字」までの文字列を削除 | マルチバイト文字列(テキスト処理) 3
5 現在WebページのURLパスを第2階層まで取得 | パス 2
5 対象文字列へ対して、一致したすべての文字列を置換する標準関数 / str_replace | 文字列(テキスト処理) 2
5 「半角スペースもしくは全角スペースで区切られた文字列」先頭に指定文字列を付与 | 文字列(テキスト処理) 2
5 配列の内容(ひらがな)を、読み(あ行~わ行)で分け、新たな配列へ格納 | 配列(型) 2
5 null代入とunset()の違い | 変数 2
5 対象文字列の内、「最初の指定文字列以前」と「それ以降の文字列」を取得する | 文字列(テキスト処理) 2
5 後ろから3文字取得 | 文字列(テキスト処理) 2
5 「input type="datetime-local"」で受け取った文字列をハイフンへ変更 | 日付および時刻関連 2
5 24時間以降の時刻を表示 / "02:30" → "26:30" | 日付および時刻関連 2
5 特定のHTMLタグのみ(aタグは除く)表示を許可 | エスケープ処理 2
5 多次元配列キーを、多次元配列内にある「特定キーの値」へ変更 | 多次元配列(型) 2
5 Noticeエラー回避 / PHP7以上で使用可能なnull合体演算子(??)を使用 | 演算子 2
2025/8/10 1:02 更新