Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
pHp函数-测试我的变量是否存在以及是否遵守条件_Php_Function_Conditional Statements_Isset - Fatal编程技术网

pHp函数-测试我的变量是否存在以及是否遵守条件

pHp函数-测试我的变量是否存在以及是否遵守条件,php,function,conditional-statements,isset,Php,Function,Conditional Statements,Isset,我想创建一个php函数。基本上,我就是这么做的: if(isset($myvariable) AND $myvariable == "something") { echo 'You can continue'; } 这就是我想要的: if(IssetCond($myvariable, "something")) { echo 'You can continue'; } 我想要一个函数来测试变量是否存在,如果存在,它会测试条件是否得到了尊重。否则返回false 我已经尝试了很多方法,但是当

我想创建一个php函数。基本上,我就是这么做的:

if(isset($myvariable) AND $myvariable == "something")
{
 echo 'You can continue';
}
这就是我想要的:

if(IssetCond($myvariable, "something"))
{
 echo 'You can continue';
}
我想要一个函数来测试变量是否存在,如果存在,它会测试条件是否得到了尊重。否则返回false

我已经尝试了很多方法,但是当$myvariable不存在时,我仍然有一个问题

function IssetCond($var, $value){
    if(isset($var) AND $var == $value)
    {
        return true;
    }
    else
   {
        return false;
   }
}
当$myvariable存在时,无论该条件是否得到遵守,它都会工作

如果你有时间帮助我,我将不胜感激

谢谢


Thomas你的想法很好,但是如果你把一个变量传递给你的函数,你就把这个变量的值传递给你的函数。如果在函数出现错误之前未设置变量,请尝试防止该错误


您可以将引用传递给函数,但如果之前未设置变量,则会导致相同的问题

您可以只传递名称,而不是变量,然后使用变量

function IssetCond($var, $value){
    return (isset($$var) AND $var == $value);
 }

 if(IssetCond('myvariable', "something"))
 {
     echo 'You can continue';
 }

我想我找到了答案,多亏了@Teko

   $a = "3";
   function IssetCond($var, $value){
    global $$var;
    if (isset($$var) && $$var == $value)
    {   return true;}
    return false;
 }
if(IssetCond('d', 4))
{
    echo 'first test'; // wont display
}
if(IssetCond("a", 3))
{
    echo 'second test'; // will display
}
if(IssetCond("a", 4))
{
    echo 'third test'; // wont display
}

谢谢大家

你所说的“尊重”是什么意思?你创建函数的想法的问题是,必须调用函数,并将变量传递给该函数。如果变量不存在,那么当您在函数调用中使用它的名称时,它将导致错误,因为它不存在!给你两个提示:保持
{}
在同一行-不一定有严格的PHP标准,但一个标准正在慢慢建立。其次,
可以缩短为
&&
谢谢各位,我本来想不显示错误,但这样可以避免问题@我的意思是,如果$myvariable==“something”是true@ThisGuyHasTwoThumbs如果我没有弄错的话,Riggs的意思是,如果没有检查传递的变量是否存在,那么在调用
IssetCond
时会导致错误,而不是因为变量的范围