php無名関数とphpファイルの関連性について

このQ&Aのポイント
  • PHPファイルで無名関数を使用する際、適切な関数へのアクセス方法があるか疑問です。
  • 提供されたソースコードでは、無名関数が定義されていますが、正しく動作しないようです。
  • どなたか、解決方法をご存知の方がいらっしゃいましたら、アドバイスをお願いします。
回答を見る
  • ベストアンサー

php 無名関数

phpファイル phpファイルで凄い初歩的な質問なのですが 関数へアクセスするメソッドは何かお約束があるのですか? ソースコードなのですが <?php /* $fn = function($num){ $num2 = $num * 3; echo "{$num}x3 = {$num2}\n"; }; */ $fn(1); $fn(15); $fn = function($a){ $b = $a + 2; echo $b; }; ?> 上のコメントアウト欄を真似て自分で作って見たのですが上手く動作しなくて... どなたかわかる方がいらっしゃったら回答願います。(イージーミスだったらすみませんm(_ _)m)

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

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

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5067/13241)
回答No.1

エラーは undefined じゃないですか? $fn(1); と呼び出す時点では $fn と言う変数は定義されていないの中身がありません。 $fn = function($a){ ・・・ }; と、$fn 変数に中身を入れてから呼び出すようにしましょう。

関連するQ&A

  • phpで関数の定義について <?php fun

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

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

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

    • ベストアンサー
    • PHP
  • phpでこの場合、calだけが関数の定義をされたん

    phpでこの場合、calだけが関数の定義をされたんですか?それともcal($x)までが関数の定義をされたんですか? <?php function cal($x) { echo ($x *3)."\n"; }; cal(6);

    • ベストアンサー
    • PHP
  • phpのthis

    a.phpを作成しました。 thisによるアクセスが可能かと思ったのですが、やはりできないのでしょうか。 ===a.php==== <?php $val = 1 ; method(); function method(){ echo $val; echo $this -> val; } ?> ===a.phpここまで===== 別のphpファイル(try.php)には以下内容を記述しました。 ===try.php=== <?php class User { private $id; public function get_id(){ return $this->id;} } public function set_id($id){ $this->id=$id; } ?> 質問: なぜ、 「try.phpでは、$idにthisでアクセスできるのでしょうか? (returnの違いかと思いましたが、set関数はreturnがないのでretrunでもないと思っています。) a.phpでは、thisで valにアクセスできないのでしょうか?」 try.phpは、classを付けてクラス作成しているから、$idにthisでアクセスできるのでしょうか? ご教授お願いします。

    • ベストアンサー
    • PHP
  • PHPの勉強してちょっとした質問

    初歩的な質問なんです。 PHPで別ページを作ってみたいと思ったのですが、 どうしたらいいかと質問をしてみました。 <?php switch($_POST["mode"]){ case "test_b": break; default: test_a(); } function test_a(){ echo "test_a"; echo "<a href="index.php?mode=test">test_b</a>"; } function test_b(){ echo "test_b"; echo "<a href="index.php?mode=test">test_a</a>" } ?>

    • 締切済み
    • PHP
  • 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を触っています。 いくつかの処理を外部ファイルにしたいのですが パスの指定が悪いのか、同じ階層に置いたり、いろいろ試してもfatal error ばかりです。 どこが悪いのか、教えていただけないでしょうか? サンプルとして、moto.phpのなかのincludeフォルダー内の外部ファイル:func.phpを実行することとします。 moto.php <?php require "./include/func.php"); $a = 2; $b = 1; $c = $a - $b * $a; echo return_word($a); echo "<br>"; //改行 echo return_word($b); echo "<br>"; //改行 echo return_word($c); ?> func.php <? php function return_word ( $data ){ if ( $a==1){ return "a"; }else if ($a==2){ return "b"; }else{ return "c"; } } ?> コマンドラインから php moto.php を実行すると <? php function return_word ( $data ){ if ( $a==1){ return "a"; }else if ($a==2){ return "b"; }else{ return "c"; } } ?> Fatal error: Call to undefined function return_word() in C:\xxxxxx\php\moto.php on line 9 となってしまいます。 外部ファイルは見えているようなのに、どうして関数がundefined になってしまうのでしょうか? phpの基本的なことなのかもしれませんが よろしくアドバイスお願いできればと思います。

    • ベストアンサー
    • 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での変数化

    よろしくお願いします。 ★hyouji.php $a_list[1]="a"; $a_list[2]="b"; という配列があって パラメータ num=1を受け取ることにより、結果を表示したいです。 hyouji.php?num=1 つまり、 echo $a_list[$num]; というようなことをやりたいのですが、うまくひょうじされません。 どうかご教授ください。よろしくお願いします。

    • ベストアンサー
    • PHP
  • phpでの変数の作り方をsmartyで実現する方法

    phpでの変数の作り方をsmartyで実現する方法を教えていただきたいです。 簡単な例ですが以下のような場合どうすれば実現できるでしょうか? $Out = array("Out_10"=>"test1","Out_20"=>"test2","Out_30"=>"test3"); $Status_Num = array("10","20","30"); $window->assign('Out',$Out); $window->assign('Status_Num',$Status_Num); [表示] {foreach from=$Status_Num item=Num} <!--ここが分かりません。。--> {/foreach} [実現したい事] phpであれば。。 <?php foreach($Status_Num as $Num):?> <a href=""><?php echo $Out['Out_'.$Num];?></a> <?php endforeach;?> 連想配列のvarを表示させたいのです。。 上記の形をsmartyで実現したいです。 エラー続きで困っています。 どなたか教えてください。 よろしくお願いいたします。

    • ベストアンサー
    • PHP

専門家に質問してみよう