- ベストアンサー
phpで関数を定義するfunctionは、なんとい
phpで関数を定義するfunctionは、なんという物なんですか?
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
functionは、PHPにおける予約語の1つです。 予約語についてはhttps://e-words.jp/w/%E4%BA%88%E7%B4%84%E8%AA%9E.htmlを読んでください。 たとえばifとかforは制御構文のための予約語、functionは関数定義のための予約語です。
その他の回答 (5)
- _kappe_
- ベストアンサー率68% (1581/2304)
>プログラミング ガベージで調べたんですが見つからなかったんですが >正式名称はなんていうんですか? ガベージコレクション(英語だとgarbage collection、それを日本語訳するとゴミ集め)のことです。 e-WordsやWikipediaの記事へのリンクを貼っておきますが、リンク先の内容を読んでもさっぱり分からないだろうと思います。 https://e-words.jp/w/%E3%82%AC%E3%83%99%E3%83%BC%E3%82%B8%E3%82%B3%E3%83%AC%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3.html https://ja.wikipedia.org/wiki/%E3%82%AC%E3%83%99%E3%83%BC%E3%82%B8%E3%82%B3%E3%83%AC%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3 プログラミング初心者のうちは「そういうものがあるんだ」とキーワードだけ覚えておけばいいです。
お礼
ガベージコレクションはありました
- AsarKingChang
- ベストアンサー率46% (3467/7474)
>ガベージってなんですか? $a="waaa";と代入したとします。 その後、$a="あいうえお";と書き換えたとしますが。 とした場合元々入っていた、"waaa"の行き先です。 いうなればゴミ箱です。 変数の中身が書き変わったというよりは、 $aが"waaa"を参照していたものが、 "あいうえお"を参照するように変更された。 と考えた方がわかりやすいかな。 その結果、"waaa"を今現在、他に誰も参照していない時 =これが、ガベージ対象になるというイメージ 通常表からプログラムする限りは あまり気にしなくてもいいのですが。 関数を抜けるとその中で使っていた 変数が全部消えるなどや、 先ほどのサンプルのように、変数の中身が「関数」 だった場合にその変数が参照されなくなった! =つまり以後誰も使わないよね? と判断されると、回収されてゴミ箱に行く機構が ガベージですよ~ そうしないと、メモリと言う資源をいつかは食いつぶしますから。
お礼
ありがとうございます プログラミング ガベージで調べたんですが見つからなかったんですが 正式名称はなんていうんですか?
- _kappe_
- ベストアンサー率68% (1581/2304)
>では、functionは関数ではないんですか? functionという英単語を日本語に訳せば「関数」ですが、PHPプログラムではfunctionという予約語だけあってもそれは関数ではありません。 functionで始まる適切な構文を使って定義されるものが関数です。 以前のhttps://okwave.jp/qa/q9945680.htmlに添付されていた画像の例で言えば、下記の4行で定義されるものがcalcという関数です(入力が面倒なのでコメントは省略)。 function calc ($num1, $num2) { $total = $num1 + $num2; return $total; }
お礼
ありがとうございます
- AsarKingChang
- ベストアンサー率46% (3467/7474)
>関数で新たな関数を定義しているということですか? >function total() >のような? この場合新しい関数を定義していますね。 $yay = function($waa) { echo $waa; }; これでも、関数!(無名関数)定義せずにfunctionという形の 実体を"$yay"という変数にいれてます。 (定義なら消えることはないが、"$yay"が消滅すればガベージされ、関数はなくなる。) それを、$yay('あいうえお');と呼び出したりもできたり。 なので、function そのものの返り値が関数とも言えます。 慣れてくると、関数と変数をごちゃまぜにする日が来るので、 あまり、深く考えない事をお勧めしますよ。 そのうち、関数のパラメータとして関数を入れる日も来ますんで。 (クロージャーって言います) my_kansu ( function () { echo 'waa'; } ); 結局変数も、関数も、物みたいなものなので、 この関数の返り値が「関数」って事も普通にあるんですよね。 なので、"function"は、関数を定義というより、 関数であることを宣言している!って言い方の方が 適切かもです~(ここは、人により感覚で別れるかもですが)
お礼
ありがとうございます
補足
ガベージってなんですか?
- AsarKingChang
- ベストアンサー率46% (3467/7474)
? functionは、関数です。 何についての「なんという物」なのでしょうか? あと、ここは、質問とは少しずれますが。 プログラムにおいて、すべてをこうだ!と 理解するより、コード書く方がずっと覚えが速いですよ。 日々変化するのと、人によってもニュアンスが違う事もありますからね。 変なコードを一つ紹介! class ABC { public function __get($abc) { return(50); } } $waa=new ABC(); $hoge = $waa->waaaaaaaaaaaa; これは「関数」 最後が()じゃなくても、関数であることもありえるので。 納得するまで理解すること自体をやめるほうが、 貴方にとってプラスになりますよ!。
お礼
functionは、関数 関数だとすると 関数で新たな関数を定義しているということですか? function total() のような?
お礼
では、functionは関数ではないんですか?