-1

if関数とisset関数(または他の関数)を1つの関数に結合する方法はありますか?

例えば:

if(isset($_GET['test'])){
    echo "It exists";
}

の中へ

exitsts($_GET['test']){
    echo "It exists";
}

私はグーグルとstackoverflowで検索し、それを説明するために複数の方法を使用しました。しかし、解決策はありません。

それで、それに対する解決策はありますか?

前もって感謝します!

ブラムハンマー

4

3 に答える 3

3

いいえ、これは不可能です。Ifは関数ではなく、構文要素です。通常、ほとんどのプログラミング言語には、値と戻り値を受け取る関数(およびプロセスの背後で何かを行う可能性があります)と構文要素があります。これらの要素を使用して、コードを構造化し、分岐などの特定の方法で動作させることができます。 (if-then-else)、ループ(for、whileなど)。ほとんどの言語での区別は単純です。背後にコードのブロックがある場合は構文要素であり、何らかの形で呼び出される場合は関数です。ただし、これはすべての言語に当てはまるとは限りません。

言語が言語を拡張するために使用されるマクロや他の強力なツールなどのメタプログラミング機能を介して明示的に許可しない限り、通常、独自の構文要素を追加することはできません。私の知る限り、PHPはそのようなツールを提供していません。箱から出してすぐに提供されない言語でそれらを取得する1つの方法は、M4などの追加のプリプロセッサを使用することです。ただし、これが役立つことはめったにありません。

一部の言語では、コードのブロックを値として扱うこともできるため、その場合、構文要素と同様の方法で関数を使用して、まだ評価されていないコードを渡すことができます。コードのブロックを直接使用できない場合は、言語が無名関数または無名クラスを提供している可能性があります。これらを使用して、これをシミュレートできます。ただし、通常、これらのシミュレートされた制御構造は、組み込みの制御構造ほど見栄えがよくありません。PHPが無名関数またはクラスを許可するかどうかはわかりませんが、必要な構造のようなものを構築できる可能性がありますが、非常に見苦しくなります。

于 2012-06-15T16:50:45.813 に答える
2

カスタム関数を作成します。

   function exitsts($var){
        if(isset($var)){
            return "It exists";
        }
        else{
            return "doesn't exsits";
        }
    }

次に、チェックを行います。

echo exitsts($_GET['test']);
于 2012-06-15T16:29:04.167 に答える
0

あります、空を使用します

if(!empty($_GET['test'])){
    /* matches
    "" (an empty string)
    0 (0 as an integer)
    0.0 (0 as a float)
    "0" (0 as a string)
    NULL
    FALSE
    array() (an empty array)
    var $var; (a variable declared, but without a value in a class)
    */
}
于 2012-06-15T16:32:46.263 に答える