• ベストアンサー

phpで以下のコードが次の認識であっているかどうか

phpで以下のコードが次の認識であっているかどうかおしえてください 1番が正しいコードで2番が私が考えたコードです なぜ2番だとエラーになるんでしょうか? 1番 <?php function say_hello($greeting) { echo $greeting."\n"; }; say_hello("Good morning"); 2番 <?php function say_hello() { echo say_hello()."\n"; }; say_hello("Good morning"); php

  • PHP
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5085/13288)
回答No.2

function say_hello() と引数の定義が無いのに say_hello("Good morning"); と引数を渡しているので構文エラーになります。 say_hello() 関数内で echo say_hello()."\n"; と同じ関数を呼び出して処理結果を出力しようとしていますが、say_hello() 関数には戻り値が無いので何も出力されません。 また、再帰呼び出しを行った場合の終了条件がプログラムされていないので無限ループになってしまい、プログラムが終了しません。

okwaveokw
質問者

お礼

ありがとうございます

その他の回答 (1)

  • Kaneyan-R
  • ベストアンサー率42% (1250/2914)
回答No.1

エラーの理由 1.関数に引数がないのに、引数を渡している。 2.関数内で自身を呼び出している。

okwaveokw
質問者

お礼

ありがとうございます

関連するQ&A

  • phpで以下のコードが次の認識であっているかどうか

    phpで以下のコードが次の認識であっているかどうかおしえてください <?php function say_hello($greeting) { echo $greeting."\n"; }; say_hello("Good morning"); say_helloというワードにfunctionで関数を定義している echoは表示させるための関数だから、 変数$greeting に表示させるという能力をつけさせている say_helloという関数が定義されて、その能力はまるかっこの中の$greetingというものの能力を使う。$greetingの能力はechoさせる能力だから、 A=B B=Cならば A=Cの関係から say_helloはechoの能力を持っている したがって、say_helloによって ("Good morning") が表示される この認識であっていますか?

    • ベストアンサー
    • PHP
  • phpで関数の定義について <?php fun

    phpで関数の定義について <?php function say_hello(){ echo "hello world"."\n"; } say_hello(); echoというのはもともと関数ですよね? 関数を定義するとは、関数を新たに作るということですよね? この新たに作った、say_hello();という関数の中に echo "hello world"."\n";という関数を入れてあるということですか?

    • ベストアンサー
    • PHP
  • phpでこの"があるとないとでどうかわりますか

    phpでこの\n"があるとないとでどうかわりますか?ウインドウズだとバックスラッシュがうてないので¥になっていますが <?php echo "good morning"."\n";?>

    • ベストアンサー
    • PHP
  • 今phpの基礎勉強をやっているんですが、vscod

    今phpの基礎勉強をやっているんですが、vscodeにコードを書いたりしています それをブラウザで表示させるにはどうしたらいいですか? <?php echo "good morning"."\n";?> これなどをvscodeを使って?クロームに表示させたいです

    • ベストアンサー
    • PHP
  • phpでこのコードで.ドットを入れる意味はなんです

    phpでこのコードで.ドットを入れる意味はなんですか? <?php $num = 1; $num01 = 2; $num_01 = 3; echo $num."\n"; echo $num01."\n"; echo $num_01."\n";

    • ベストアンサー
    • PHP
  • vscodeでphpの以下のコードを実行すると、そ

    vscodeでphpの以下のコードを実行すると、そのまま書いたコードがターミナルに表示されます。なぜでしょうか? $x = 20; if($x == 30){ echo'$xは30です'; }else{ echo '$xは30ではありません'; }

    • ベストアンサー
    • PHP
  • PHPのprivate関数について

    PHPのアクセス修飾子privateについてお聞きします。 以下のようなコードを書いて実行したら、エラーメッセージが出ました。 code: <?php class Super { protected function protectedFunc(){ echo "original-Protected\n\r"; } private function privateFunc(){ echo "Private\n\r"; } public function publicFunc(){ privateFunc(); } } $super = new Super; $super->publicFunc(); ?> error message: Fatal error: Uncaught Error: Call to undefined function privateFunc() in C:\xampp\htdocs\HTML_practice\protected-practice.php:12 Stack trace: #0 C:\xampp\htdocs\HTML_practice\protected-practice.php(17): Super->publicFunc() #1 {main} thrown in C:\xampp\htdocs\HTML_practice\protected-practice.php on line 12 line12 というのは、public 関数であるpublicFunc() の内側で、private関数のprivateFunc() を使おうとした部分ですが、private関数はクラス定義の中だから使えるというのは間違った認識でしょうか? だとするとprivate関数はいつどんな時に使えるのでしょうか? どなたか例を挙げて説明頂けないでしょうか? 宜しくお願いいたします。

    • ベストアンサー
    • PHP
  • このPHPコードのエラー原因を教えてください。

    いつもお世話になっています。 現在PHPの勉強をしているのですが、プログラムがエラーとなり、原因が分からず困っています。 原因の分かる方がいらっしゃれば、教えて頂きたいと思います。 状況は以下の様になっています。 ・PHPのversionは5.2.0、XAMPPはv3.2.1を使用しています。 ・Aptanaでは一番最後のcreate_radio($c, $d)関数で構文エラーが発生しているので、問題はこの辺りにあるのではと考えてはいます。 ・return <<< __end__ ~ __end__;の記述方法がPHPの設定上できないのかもしれません。 (echo <<< ~も使用できませんでした。) ・以下コードです <?php show_header(); show_form(); show_footer(); function show_header(){ $color = "white"; if(isset($_GET["Name_Of_Color"])){ $color = $_GET["Name_Of_Color"]; $color_html = htmlspecialchars($color); echo "<html><body bgcolor='color_html'>"; }else{ echo "<html><body bgcolor='white'>"; } } function show_footer(){ echo "</body></html>"; } function show_form(){ $colors = array("赤色" => "red", "青色" => "blue", "白色" => "white"); echo "<form>"; foreach($colors as $a => $b){ echo create_radio($a, $b); } echo "<input type='submit' value='変更'>"; echo "</form>"; } function create_radio($c, $d){ return <<< __end__ <input type="radio" id="$c" name="Name_Of_Color" value="$d"> <label for="$c">$c</label> __end__; } ?> それでは、よろしくお願いします。

    • 締切済み
    • PHP
  • require Auth.php

    require 'Auth/Auth.php'; の動作について教えてください。 サンプルソース a.php に、 「require 'Auth/Auth.php';」と冒頭に記述してありました。 PEARだと思うのですが、結局この記述は、 a.phpに、 (1)Auth.phpの内容を取り込む? (2)Auth.phpの内容を継承する? どちらの解釈の方が正しいのでしょうか? 今までrequire だと、指定したphpの内容を取り込む((1)番だと)だと認識していました。 以下ソースのように動作してると思っています。Auth.phpも同じ動作と思っていいものなのでしょうか。 ・test.php <?php echo "start!!\n"; include("include.php"); echo "end!!\n"; ?> ・include.php <?php echo "include start!!\n" ?> ●実行結果 start!! include start!! end!!

    • ベストアンサー
    • PHP
  • phpで次の場合なぜ3が表示されず、2までなんでし

    phpで次の場合なぜ3が表示されず、2までなんでしょうか? <?php for($i = 0; $i <= 4; $i ++){ if($i == 3) { break; } echo $i."\n"; } ?>

    • ベストアンサー
    • PHP