ここから本文です

変数のスコープの質問です。

sak********さん

2017/3/513:07:43

変数のスコープの質問です。

if (isset($_POST["index"]) && isset($_POST["name"]) && isset($_POST["introduce"])){
$x=$_POST['index']; $y=$_POST['name']; $z=$_POST['introduce'];


$object=new Introduct();
$object->regist_file($x,$y,$z);
$object->showAll();


$lines=$object->showAll();

foreach ($lines as $line) {
list($x, $y, $z) = explode(",", $line);
printf("<tr><td>$x</td><td>$y</td><td>$z</td></tr>");
}

}

foreach内のx,y,zはその前までのx,y,zとは別ですか?ただif関数の中に入っているので、同じ関数内なのかなって思ったりします。

そもそもifやforeachが関数なのかもよく分からないです。

閲覧数:
23
回答数:
2

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

tez********さん

2017/3/513:56:25

> foreach内のx,y,zはその前までのx,y,zとは別ですか?
変数としては同じものですが、
list($x, $y, $z) = explode(",", $line);
で、ループの都度上書きしているので、内容は毎回異なります。
__Introduct::regist_file() に渡すためだけに $x=$_POST['index']...
__としているのは無意味で、無意味なものが上書きされても
__何の問題もないでしょうが

スコープの問題そのもの存在しませんね。



> そもそもifやforeachが関数なのかもよく分からない
公式マニュアルをキチンと読みましょう。
制御構造と関数とは明確に分けて説明されています。
http://php.net/manual/ja/language.control-structures.php
http://php.net/manual/ja/control-structures.if.php
http://php.net/manual/ja/control-structures.foreach.php

質問した人からのコメント

2017/3/5 17:08:31

制御構造で関数とは別なのですね。ありがとうございます。

ベストアンサー以外の回答

1〜1件/1件中

rok********さん

2017/3/513:41:38

POSTの内容をx,y,zに格納し、
その後、explodeの分割結果を直接listに書いた変数x,y,zにセットしてます。
同じ内容で上書きしてる感じですかね。

このくらいなら変数を使わなくても
if (isset($_POST["index"]) && isset($_POST["name"]) && isset($_POST["introduce"])) {
$object = new Introduct();
$object->regist_file($_POST['index'], $_POST['name'], $_POST['introduce']);
list($x, $y, $z) = explode(",", $object->showAll());
printf("<tr><td>$x</td><td>$y</td><td>$z</td></tr>");
}

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる