• ベストアンサー

呼び出した関数を知る方法はありませんか?

PHPで自分を呼び出した関数を知る方法はないものでしょうか? 例えば... -- ここから -- function a(){ # 何かの処理 } function b(){ a(); } b(); -- ここまで -- というスクリプトがあったときに, 関数aの中で, 関数aが関数bから呼び出されたことを知る方法はないものでしょうか? あったらデバッグにとっても便利だと思うのですが。 ご存知の方, どうぞ回答よろしくお願いいたします。

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

  • ベストアンサー
noname#18290
noname#18290
回答No.1

関数a()がどこから呼ばれたかを知りたければ、 function a(){ var_dump(debug_backtrace()); # 何かの処理 } とすれば、配列にcall元が入ります。

funi2
質問者

お礼

早速の回答ありがとうございます。 まさに私の求めているものでした!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • PHP内でjsファイルの関数は使えないのでしょうか

    こんばんは、Webページ制作の勉強で問題にぶつかり、少々お知恵をお借りしたく質問させて頂きました。 あるPHPファイルの中の <!doctype html> <html> //ここにHTMLの記述があるとします。 </html> のHTMLの記述の中に <script src="example_A.js"></script> <script src="example_B.js"></script> のような形で他のページでも使っているJavascriptのファイルを読み込んで使用しようとしたのですが、一部の処理だけが行われないようのです。 そこでjsファイルの中で使えない記述に共通点が無いか確認してみたところ、 $(function() {   //ここに処理 }); のように、関数のみが動作して居ない事が解りました。 そこで質問なのですが、PHPファイルの中では、<html>の中で記述されたスクリプトだとしても関数の中で記述された処理は使えないという事なのでしょうか? また、もしPHPの中でも関数を動作させる方法があれば、教えて頂けないでしょうか。 宜しくお願い致します。

    • 締切済み
    • PHP
  • 各々の関数を処理するごとに変数aに1を足したい

    各々の関数を処理するごとに変数aに1(実際には関数ごとに異なる数)を足したいと考えています。 (関数Aの処理を行った場合には変数aに1を足し(0+1=1)、加えて関数Bの処理を行った場合には変数aにさらに1を足して(1+1=2)、加えて関数Cの処理を行った場合には変数aにさらに1を足して(2+1=3)・・・・) perlでは以下のような記述で実現できるかと思いますが、JAVAスクリプトではどのように記述すればよいのでしょうか。色々と参照しながら試行錯誤したのですが、うまく動作しませんでした。恐らくは基本的な質問かとも思われ大変恐縮ですが、特にJAVAスクリプトに関しては全くの初心者の為、何卒ご教授いただけないでしょうか。申し訳ありませんが、よろしくお願いいたします。 $a = 1; sub A{$a = $a+1;} sub B{$a = $a+1;} sub C{$a = $a+1;} &A; &B; &C; print "$a"; ############################################# ちなみに、本などを見ながらreturnや引数を利用するのかと試行錯誤したのですが、具体的な記述方法が分からず、失敗しました。 a=1; function A() {a = a+1;} function B() {a = a+1;} function C() {a = a+1;} function A(); function B(); function C(); document.write(a);

  • 関数を呼び出す関数

    Javascriptを勉強し始めたばかりの者です。 やりたいことを実現するうまい方法が見つからなくて困っています。 例えば、以下のように複数の関数があらかじめあって、 sample1() sample2() sample3() ・ ・ sample20() これらをまとめて実行する function all() といった関数を作りたいと思っています。 function all()の中にそれぞれ羅列すれば実現できる?のですが (例) <script type="text/javascript"> <!-- function sample1(){ なんらかの処理1 } function sample2(){ なんらかの処理2 } ・ ・ ・ //前述関数をまとめて実行する関数 function all(){ sample1(); sample2(); sample3(); ・ ・ sample20(); } //--> </script> もっとうまいやり方はないものでしょうか?羅列するというのはどうも・・・。 どうしてこのような事をしたいのかというと、sample1()、sample2()などはそれぞれ独立していて関連しあっていません。 単体で動かしたいときもあれば、まとめて全部実行したいという場合もあってこのようなことを考えています。 どなたかご教授願えたら幸いです。どうぞよろしくお願いします。

  • PHPで外部関数での返値の取得の仕方について

    はじめまして。PHPの勉強を始めたばかりの者です。 <?php 関数 ?> で、関数はJavaScriptで書いてあります。 --関数-- <script language="JavaScript"> function 関数(){ a = 計算; return a; } </script> としているのですが、関数がないとか返値がないみたいなエラーメッセージが表示されます。 どなたか詳しい方、ぜひご指導願います。

    • ベストアンサー
    • PHP
  • 関数の組み込み。

    PHPでの関数の組み込みの質問です。 自作の関数を集めたPHPファイル"common_function.php"を製作し、 それぞれの処理の頭でこの関数ファイルをinclude_onceを使って 読み込んでいるという形式で処理を行っています。 include_once("../common/common_function.php"); この処理を行わずにこの関数ファイルををデフォルトで読み込む ようにPHPの設定に組みこむ事はできないのでしょうか? よい方法があれば宜しくお願いします。

    • ベストアンサー
    • PHP
  • jQueryでの、引数を取るJS関数の呼出方法

    jQueryの学習をしています。 HTML & JavaScriptで下記のように書かれているコード <input type=button id=button1 onclick=func_a() /> <script> function func1(){ //処理いろいろ } </script> は、jQueryを使って書くと、 $('#button1').live('click', func_a); このように書けます。 <input type=button id=button1 onclick=func_b(arg1, arg2) /> <script> function func_b(argument1, argument2){ //処理いろいろ } のように引数を取る関数は jQueryではどのように書けばよいのでしょうか? $('#button1').live('click', func_b(arg1, arg2)); とは書けなかったので、今は、 if (arg1 == xxx){ $('#button1').live('click', func_b_1_1); } else { $('#button1').live('click', func_b_1_2); } などのように引数別に同じような関数を創って書いています。 DRY原則という同じコードを二度書くなという約束もあるようなので、 きっといい方法があると思うのですが、 お詳しい方、教えていただけるとうれしいです。 どうぞ、よろしくお願いいたします。

  • 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
  • PHP 関数内の変数のスコープについて

    宜しくお願いします。 関数A内で作成したローカル変数 「a」 を、 その関数A内で作った関数Bで、変数「a」を操作しようと思います。 簡単に書くとこうです。 function A(){ $a = array(あ、い、う); function B(){ $a = array(い、う) }   ※$aを使っての処理 } <試してみたこと> 関数B内で、global $a として、変数をグローバルにしましたが、関数Bの操作は反映されませんでした。 retun で戻せばよいとも、もちろん考えましたが、 処理の都合上、どうしてもグローバルに扱いたく思います。 とても、大雑把な質問形式で申しわけございませんが、何卒、ヒントを下さいませ。

    • ベストアンサー
    • PHP
  • 関数

    今自宅で WindowsME anhttpd 1.42b php-4.2.3-Win32 の環境でPHPプログラムを作成しているのですが、 マルチバイト関数の mb_convert関数を使うと undefined function: mb_convertと表示されます。 誰か解決法をご存知の方、教えてくださいお願いします

    • ベストアンサー
    • PHP
  • 関数の入れ子ができない。

     はじめまして!php初心者です。 デフォルトではfunctionの入れ子はできないのでしょうか? <? //function test test(); function test(){ echo 'good!<br />'; test1(); function test1 () { echo 'test'; } } ?> これが動きませんでした。 Fatal error*: Call to undefined function test1() in /home/*/public_html/osamu/php/test.php* on line 8 ということでした。入れ子にしたfunctionが駄目らしいです。 <? //function test test(); function test(){ echo 'Omnioo!<br />'; test1(); } function test1 () { echo 'test'; } ?> こんな風に外に出してやる動きます。 機能的に一つの関数にまとめておきたい場合、関数の中に関数がある方が便利だと思うのですが、皆様はどうされているんでしょうか? ご教授お願いします。

    • ベストアンサー
    • PHP
親とのスマホ決定について
このQ&Aのポイント
  • 親とのスマホ決定について意見が食い違ってしまっています。
  • 高価なIphoneを買うか、安価なスマホとポイントを選ぶかで意見が分かれています。
  • 親はポイントを自分が使うべきであり、子供はポイントをもらうべきだと考えています。
回答を見る