-1

ユーザーのイニシャル (STRING) をユーザー ID (INT) に変換する関数を作成しています。

問題は、関数を呼び出すと、未定義の関数呼び出しエラーが発生することです。これは、以下で宣言された関数がソース内に見つからないためです!

// connect to database -- this works, I checked it
function convertRadInitToRadID($radInits){
    $sqlGetRadID="SELECT id FROM sched_roster WHERE radInitials == '".$radInits."'";
    $resultGetRadID=mysql_query($sqlGetRadID);
    $radID=mysql_result($resultGetRadID,0);
    return $radID;
}

...次に、ユーザーのイニシャルの ($radNotOnVacay_and_NonMRNotonVacayWeekBeforeAndAfter) を作成して配列します。エラーなしで動作し、個別にテストしました

$randKey=rand(0,(count($radNotOnVacay_and_NonMRNotonVacayWeekBeforeAndAfter)-1));
$randRad=$radNotOnVacay_and_NonMRNotonVacayWeekBeforeAndAfter[$randKey];
$randAssignedRadID=convertRadInitToRadID($randRad);  // call to undefined function error here

ソースを表示すると、関数定義コード (関数を定義する場所) がソースのどこにも表示されません。非常に奇妙な。スクリプトのさまざまな領域に配置しようとしましたが、同じエラーです。関数定義は適切に宣言され、 でラップされます。

非常に奇妙な。関数は表示されません。引用符、構文、セミコロンなどはすべて適切です。

構文エラーはありません。アドバイス?

4

4 に答える 4

1

私は回答#1に強く同意します。

さらに、関数を呼び出した後に関数を定義している場合、phpで通常の問題が発生します。つまり、呼び出し元のコードが関数定義の前にある場合、それは実行されず、未定義の関数のエラーが発生します。

クラスを作成してから、そのクラスでこの関数を定義できます。呼び出し時に、$ this-> function(args)を使用してその関数を呼び出すことができます。

私が自分のマシンでコードを実行しようとしている間、これで問題が解決すると思います。どうなるか見てみましょう。

于 2013-02-10T07:07:13.147 に答える
0

関数が何らかのクラスのメソッドである可能性があります。したがって、そうである場合は、別の方法で使用する必要があります。

MyClass::convertRadInitToRadID($radInits) // if static method

またはこのように

$class = new MyClass();
$class ->convertRadInitToRadID($radInits)
于 2013-02-10T06:58:46.183 に答える
-1

あなたの質問を理解しようとしています... JavaScriptを使用して関数を呼び出そうとしていますか? その場合、JavaScript はブラウザーで実行され、PHP はサーバーで実行されることを思い出してください (これが、「ソースを表示」しても関数がどこにも表示されない理由です)。JavaScript から PHP にデータを送り返すには、AJAX を使用する必要があります。

于 2013-02-10T07:02:01.013 に答える
-1

私は答えを見つけました:私はJquery UIタブを使用していました....タブと競合する必要があります。タブなしでコードを実行しても問題はありません。

「==」修正をありがとう..感謝します。私の悪い

80 文字の varname コード制限について思い出させてくれてありがとう

于 2013-02-10T07:32:56.547 に答える