2017-11-05 14 views
1

trueを返すことができる内部関数function_existsを使用しますが、私のプロジェクトでカスタム関数を見つけることができません。私も関数をトレースするために私のコードをデバッグしましたが、デバッガは私のカスタム関数にステップインしません。なぜ私は非常に楽しみにしています。助けてください、ありがとう。コード次の関数が定義されている場所、使用を見つけるためにカスタムPHP関数が定義されている場所を確認

+1

を、あなたが求めているものは不明である、[尋ねる]読んで行ってください。あなたの問題は 'if(function_exists())'の中の関数を上書きしようとしていますが、関数は既にどこかに存在するので、決して起こりません。さて、単に条件を_remove_して、関数を再宣言する前にその関数が存在するかどうかをチェックしてください - その関数が最初に宣言された場所、ファイルと行番号というエラーメッセージが表示されます。 – CBroe

答えて

2

<?php 
    $rf = new ReflectionFunction('my_fuction_name'); 
    echo 'file:' . $rf->getFileName() . ', line:' . $rf->getStartLine(); 
?> 

関数は、ソースコードで定義されているが、それは内部PHP関数ですされていない場合は、getFileName()getStartLine()両方がfalseを返すことに注意してください。関数がそのように内部にある場合

あなたがチェックできます。

<?php 
    $rf = new ReflectionFunction('my_fuction_name'); 
    if($rf->isInternal() === TRUE){ 
     echo "Function is internal!"; 
    }else{ 
     echo "Function is not internal."; 
    } 
?> 
関連する問題