结合if&是一个功能

时间:2012-06-15 16:27:00

标签: php function

是否有可能将if函数和isset函数(或其他函数)组合到一个函数中。

例如:

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

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

我在google和stackoverflow上搜索并使用多种方式来描述它。 但没有解决方案。

那么有解决方案吗?

提前致谢!

Bram Hammer

3 个答案:

答案 0 :(得分:3)

不,这是不可能的。 If不是函数,而是语法元素。通常在大多数编程语言中,您都有函数,这些函数接受值和返回值(并且可能在过程中执行某些操作)和语法元素,这些函数可用于构造代码并使其以某种方式运行,例如分支(if-then-else),循环(for,while等)。大多数语言的区别很简单:如果它后面有一个代码块,那么它就是一个语法元素,如果以某种方式调用它,它就是一个函数。但是,对于所有语言而言,情况可能并非如此。

通常不可能添加自己的语法元素,除非语言明确允许它通过某些元编程工具,如宏或用于扩展语言的其他强大工具。据我所知,PHP不提供任何此类工具。将它们用于不提供开箱即用语言的一种方法是使用额外的预处理器,例如M4。然而,这很少有用。

某些语言还允许将代码块视为值,因此在这种情况下,您可以使用与语法元素类似的方式使用函数,并将它们传递给尚未评估的代码。如果无法直接使用代码块,则该语言可能提供匿名函数或匿名类,可用于模拟此类。然而,通常这些模拟控制结构看起来并不像内置控制结构那样美观。我不确定PHP是否允许匿名函数或类,您可能能够构建类似于您想要的结构,但它看起来非常难看。

答案 1 :(得分:2)

创建自定义功能:

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

然后做你的检查:

echo exitsts($_GET['test']);

答案 2 :(得分: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)
    */
}