PHP中是否存在Is_Variable(...)类函数?

时间:2015-03-07 10:08:15

标签: php

如果我将字符串$ foo定义为...

$bar = "Hello World";
...
$foo = '$bar';
...

一个将使用字符串的函数。

...
function doSomething( $foo )
{
   if( is_variable( $foo) )
   {
     // eval the variable and then use it.
   }
   else
   {
     //  just use the string as is
   }
}

基本上我希望能够判断变量$ foo本身是否包含变量或者只是一个字符串。

当我调用函数is_variable(...)时,我可以评估变量,否则只需使用给定的字符串值。

3 个答案:

答案 0 :(得分:1)

is_string

http://php.net/manual/en/function.is-string.php

所以你的功能将成为

function doSomething($foo)
{
   if(!is_string( $foo) )
   {
     // eval the variable and then use it.
   }
   else
   {
     //  just use the string as is
   }
}

注意if(!is_string( $foo) ) - 使用! - 它说'如果$ foo 一个字符串,那么......

答案 1 :(得分:1)

如果您愿意,可以使用variables variable

<?php

    $bar = "Hello World";
    $foo = 'bar';
          //^ Without the dollar sign

    if(isset($$foo)) {
           //^^ See here the double dollar sign
        echo $$foo;
    } else {
        echo "no";
    }

?>

输出:

Hello World

答案 2 :(得分:0)

我建议使用RegEx模式。我写了一个示例模式:

http://www.phpliveregex.com/p/aiR

function is_variable($var) {
  return preg_match("/^\$\w*$/", $var) == 1;
}