人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

【PHP】ユーザ自作関数の挙動について

function buy($product){
echo $product."を購入しました。<br>";
}

この関数を下記のように利用します。
$kekka = buy("お肉");

すると、

お肉を購入しました。

と表示されます。
どういった仕組みでechoされて表示がされるのでしょうか??

表示されるのはおかしいと考え
試しに下記をおこなったところエラーがおきています。
$aaa = echo "bbb";
Parse error: syntax error, unexpected T_ECHO


●質問者: musicnomy
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● morinatsu
ベストアンサー
echo $product."を購入しました。<br>";

echoで標準出力に書き出された内容が、元文書でコードが書かれている場所「<?php ??>」の内容に置き換わり、その後、HTMLとして解釈されると考えると分りやすいと思います。


$kekkaへの代入は関数を実行させるための方便で、この場合はechoの「標準出力に文字列を書き出す」という機能だけを利用しています。(この$kekkaの内容を利用している箇所はありましたか?)


$aaaへの代入がエラーになるのは、echoは関数では無いので、それ自身、他の変数に代入可能な値を持たないからです。「変数、関数、リテラルなどがあるはずのところに、変なのが来た!」と驚いているわけです。

◎質問者からの返答

回答ありがとうございます。

ご説明にて$aaa = echo "bbb";の

$aaaへの代入がエラーになるしくみはわかりました。

ですが、そのしくみでいけば、

$kekkaへの代入も同じ理由でエラーになるのではないでしょうか?

$kekka = buy("お肉"); がエラーが起きずに

表示されている理由がまだわかりません。

関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ