
No.4ベストアンサー
- 回答日時:
>存在していると処理に不都合が出る場合とはどんな場合があるのでしょうか?
今PHPを勉強中だそうですが、これからいろいろプログラムを作っていくうちに、きっとunsetを使う場面に遭遇するでしょう。
私はNo1でも回答しましたが、カート処理などで、カートの中身をセッションに配列として保存しておき、ユーザーが商品を削除したときに、その商品のIDを配列で検索して削除し、その配列から再度カートの中身を表示される、といった具合です。
説明がちょっとわかりずらいと思いますが、イメージとしてこんな感じです。
(1)例えばカートの中身はこんな具合になっているとします
$_SESSION['CART']['No001']['商品名']="りんご";
$_SESSION['CART']['No001']['金額']="100";
$_SESSION['CART']['No001']['数量']="10";
$_SESSION['CART']['No002']['商品名']="みかん";
$_SESSION['CART']['No002']['金額']="50";
$_SESSION['CART']['No002']['数量']="5";
(2)No001の商品が削除されたとします
$id=$_POST['del'];//POSTデータはNo001
unset($_SESSION['CART'][$id]);
(3)再度カートの中身を表示
foreach($_SESSION['CART'] as $goods){
echo "商品名:".$goods['商品名']."<br>";
echo "金額:".$goods['金額']."円<br>";
echo "数量:".$goods['数量']."個<br>";
echo "小計:".$goods['金額']*$goods['数量']."円<br>";
}
(4)出力結果は・・・
商品名:みかん
金額:50円
数量:5個
小計:250円
となります。
あとは、絞り込み検索処理などでもよく使います。
丁寧に説明していただきありがとうございます。
なるほど。「存在していると処理に不具合がでる場合」という表現が
よくわかりました。参考にさせていただきますね^^
ありがとうございました。 <(_ _)>
No.3
- 回答日時:
必要なくなったとか、いらないから という意味で使うのではなく、有ると困るから という意味で使います。
と言っても、PHPの場合はガベージコレクタがアホなので、もしかしたら必要なくなった という意味で使った場合有効なのかもしれません :-p
回答ありがとうございます ≦(._.)≧
ちなみに、「有ると困るから」という場合とは
どんな時なのでしょうか?
もし、差し支えなければ教えていただけないでしょうか?
No.2
- 回答日時:
No1ですが、補足分です。
>ほとんど使われなくなる可能性ががある変数なんかがあった場合は、多用してもいいということなのでしょうか?
つまり、unsetを使用するのは、その変数が今後使われないから削除するのではなく、存在していると処理に不都合が出る場合に使用します。
もちろん、多用することには全く問題はありません。
回答ありがとうございます m(。_。;))m
ちなみに、存在していると処理に不都合が出る場合とは
どんな場合があるのでしょうか?
もし、差し支えなければ教えていただけないでしょうか?
No.1
- 回答日時:
unsetと変数初期化を区別して考えるといいでしょう。
$a="";とunset($a);は全く違います。
配列などで特定のキーと値を削除したい時には重宝します。
例えばこんな感じ、、、
<?
$a[1]=1;
$a[2]=2;
$a[3]=3;
$a[1]="";//変数初期化
echo count($a)."<br>";//答えは3
unset($a[1]);//
echo count($a)."<br>";//答えは2
?>
配列数を取得して処理させている仕組みの場合だと、
このような方法を使います。
unsetはセッション変数などにも有効なので、
カート処理(カートの商品削除の処理)でもよく使います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 数学 ファジィ理論について教えてください 2 2022/07/12 16:01
- 数学 数3 複素数 z^3+3z^2+3z-7=0 を解けという問題なのですが、 (z+1)^3=8と変形 3 2023/01/17 15:13
- その他(OS) Windowsで大量の画像サイズを半自動で変更する方法 6 2023/02/17 08:45
- 財務・会計・経理 社内精算口座に対する手数料発生について 1 2023/02/26 02:36
- Excel(エクセル) エクセル関数の変わった使い方 3 2022/05/13 17:12
- Excel(エクセル) Excel 在庫管理について 3 2023/02/09 10:00
- PHP PHPで訪問回数を表示するカウンタを作成したい 3 2023/05/27 07:09
- 物理学 ベクトルと座標系につきまして 1 2022/04/03 06:23
- Ruby 初心者プログラミング 3 2022/10/12 11:31
- 高校受験 数学の問題いくつか捨てても大丈夫?残り1ヶ月、点数が取れない教科ばっか勉強しても大丈夫? 高校受験 2 2023/01/07 17:55
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
配列をループでたくさん宣言し...
-
PHPのPOSTでの半角スペース
-
Smarty の演算方法
-
チェックボックス複数選択 mys...
-
String だと「 ByRef引数の型が...
-
PHPにてクラスを配列にすること...
-
$_SESSIONに二次元配列を使える...
-
配列をMySQLの1カラムに入れ、...
-
配列を回すとき、最後の要素だ...
-
AppStoreのランキングを配列に...
-
【PHP】配列の最後の要素の...
-
SimpleXML関数で取得したXML要...
-
foreachのなかで次のキーを参照...
-
ファイルから指定行数分だけ読...
-
総当たりのアルゴリズムについて
-
phpmyadminにおける動作速度が...
-
postgresql関数をつかったレコ...
-
プルダウンメニューでCSVデータ...
-
配列一致(要素順番は違うが内容...
-
ネストが深い時のforeachはどう...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
配列をループでたくさん宣言し...
-
$_SESSIONに二次元配列を使える...
-
foreachのなかで次のキーを参照...
-
file_existsでファイル名の部分...
-
PHPにてクラスを配列にすること...
-
String だと「 ByRef引数の型が...
-
ネストが深い時のforeachはどう...
-
postgresql関数をつかったレコ...
-
PHPでの簡易ビンゴゲームでの疑...
-
PHPのカッコ[ ]の使い方について
-
sortableで並べ替えてDBに保...
-
漢字のソートについて
-
プルダウンメニューでCSVデータ...
-
チェックボックス複数選択 mys...
-
PHPで配列をPOSTデータで送った...
-
URLのサブドメインとドメイン部...
-
PHP 配列の添字に変数は使えない?
-
チェックボックスが複数選択で...
-
PHP 多次元配列変数のデータ受...
-
SQL文の実行結果を変数で受けて...
おすすめ情報