2

いくつかのphp関数が利用可能かどうかを確認しようとしています. ソースは関数名の配列でなければなりません。残念ながら、これはうまくいかないようです。私は常に負のリターンを得る:

// Array with function names
$func_array = array("die",
                    "echo", "empty", "exit", "eval",
                    "include", "include_once", "isset",
                    "list",
                    "print",
                    "require", "require_once",
                    "unset","exec"
                    );

// Check Function
function func_avail($funcav) {   
    if ( function_exists($funcav) ) {
        echo "$funcav is enabled<br/>";
    }
    else {
        echo "$funcav is not enabled<br/>";
    }

}

// Loop through array
for ( $x = 0; $x < count ( $func_array ); $x++ )
{
        func_avail($func_array[$x]);
}

質問 1: なぜこれが機能しないのですか? (出力は常に有効ではありません)

質問 2: 有効になっていない (function_exists = 0) は、関数が php.ini 内で無効になっていることを意味するか、この php バージョンでは使用できないことを意味する可能性もあります。FE 新しいバージョンの php でのみ使用できる関数を使用しようとしています。

よろしくお願いします!

トニ

4

1 に答える 1

0

質問 1:なぜこれが機能しないのですか? 出力は常に有効ではありません

...を除いてexec()。どちらが正しい: 他の項目は関数ではなく、言語構造です。(私の知る限り、言語構造を無効にする方法はありません。)

function_exists()のマニュアルページでは、次のことが確認されています。

この関数は、やFALSEなどの構造に対して戻ります。include_onceecho

 

質問 2:有効になっていない (function_exists = 0) は、関数が php.ini 内で無効になっていることを意味するか、この php バージョンでは使用できないことを意味する可能性もあります。FE 新しいバージョンの php でのみ使用できる関数を使用しようとしています。

それはまさにマニュアルが言うことを意味します:

function_name について、組み込み (内部) およびユーザー定義の両方の定義済み関数のリストをチェックします。

注: 構成やコンパイル オプションによって関数自体が使用できない場合でも、関数名が存在する場合があります (例としてイメージ関数を使用)。

于 2013-10-03T16:15:14.260 に答える