如果我将字符串$ 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(...)时,我可以评估变量,否则只需使用给定的字符串值。
答案 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;
}