
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の問い合わせフォームを作っ...
-
PHP8でWarning:Undefined varia...
-
composerをインストールしたい...
-
フォームで戻った際に入力済み...
-
php テーブルが作成できない
-
複数のパソコンの中の1つのパソ...
-
ゆゆにゃ。
-
プログラミング言語で、使える...
-
なんでブラウザでPHPを動かすた...
-
アップロードファイルを表示す...
-
PHPでこのコード自体に意味は無...
-
MySQLの配置が変わったため、db...
-
入力フォームの空白や改行を制...
-
$_SESSIONについて教えて下さい。
-
php でqiitaのサイトにあったフ...
-
返信機能のツリー構造の深さを...
-
PHPについて。
-
PHPからCSVをアップロード後、m...
-
[php初心者]サイトを見てデータ...
-
こちらはただの直列処理ですか?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
String だと「 ByRef引数の型が...
-
配列をループでたくさん宣言し...
-
$_SESSIONに二次元配列を使える...
-
チェックボックス複数選択 mys...
-
配列一致(要素順番は違うが内容...
-
file_existsでファイル名の部分...
-
Smartyのテンプレートからjavas...
-
ネストが深い時のforeachはどう...
-
foreachのなかで次のキーを参照...
-
漢字のソートについて
-
PHPにてクラスを配列にすること...
-
ExcelVBAのチェックボックスに...
-
URLのサブドメインとドメイン部...
-
PHPのカッコ[ ]の使い方について
-
配列を回すとき、最後の要素だ...
-
PHPのPOSTでの半角スペース
-
PHPのループ数限界値について
-
$_POSTを一括してサニタイズし...
-
postgresql関数をつかったレコ...
-
ファイルから指定行数分だけ読...
おすすめ情報