是否有可能将if函数和isset函数(或其他函数)组合到一个函数中。
例如:
if(isset($_GET['test'])){
echo "It exists";
}
到
exitsts($_GET['test']){
echo "It exists";
}
我在google和stackoverflow上搜索并使用多种方式来描述它。 但没有解决方案。
那么有解决方案吗?
提前致谢!
Bram Hammer
答案 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)
*/
}