【发布时间】:2013-10-24 00:19:06
【问题描述】:
所以我有一个变量和一个函数不能用来展示我的思维过程。
代码:
$variable = "This is a string!";
function is($var)
{
if( isset ( $var ) )
return true;
return false;
}
if( is ( $variable ) )
echo "This variable exists!";
else
echo "This variable does not exist!";
输出:
This variable exists!
因为存在$variable,所以函数可以正常工作,但是当$variable没有被设置或定义时会出现问题。
代码:
function is($var)
{
if( isset ( $var ) )
return true;
return false;
}
if( is ( $variable ) )
echo "This variable exists!";
else
echo "This variable does not exist!";
输出:
Notice: Undefined variable: variable on line x
This variable does not exist!
因为这个变量还没有定义,当它被引用时,PHP 会返回一个通知,说你试图引用的这个变量是未定义的。这是一个问题,因为当变量设置不正确时,该函数总是会创建一个通知,而这是一开始就试图避免的。
所以我尝试将变量名作为不带引用的字符串传递。
代码:
$variable = "This is a string";
function is($string)
{
if(isset($$string)) // Variable Variables
return $$string;
return "";
}
echo is("variable");
但这仍然不起作用。我不知道如何使用简短的函数优雅地输出一些东西,而不是每次都输入:
echo (isset($variable) ? $variable : "");
如何使用 php 检查引用是否存在?
【问题讨论】:
-
为什么需要这样做?对我来说,这似乎是违反直觉的过度优化......
-
@JamesG。当变量不存在时,这将是一种更快的输入方式,更清晰的外观,并且可以根据您想要全局输出的内容轻松定制和更改。
-
你可以这样做
echo @$variable;。
标签: php variables undefined output ternary-operator