gre*_*tle 0 php variables undefined isset
我有一个字段,如果满足特定条件,则该字段具有自定义文本...如果不满足,则该字段为空白。
我已经编写了一个自定义函数测试是否设置了变量
function AmISet($fieldName) {
if (isset($fieldName)) {
echo "I am set";
}else{
echo "I am not set";
}
};
Run Code Online (Sandbox Code Playgroud)
但是当我附加该字段时,出现变量未定义的错误。但当我做常规时,isset($fieldName);
我没有问题。有什么方法可以解决这个问题并让我的函数而不是 isset() 执行此操作?
我想在函数中添加其他逻辑,但我只希望它在设置变量的情况下工作......但如果没有设置变量,我不希望出现未定义的错误。
我是 php 新手,非常感谢您能给我的任何帮助或指导。感谢您的帮助!
您需要通过引用传递变量:
function AmISet(&$fieldName) {
if (isset($fieldName)) {
echo "I am set\n";
} else {
echo "I am not set\n";
}
}
Run Code Online (Sandbox Code Playgroud)
测试用例:
$fieldName = 'foo';
AmISet($fieldName); // I am set
unset($fieldName);
AmISet($fieldName); // I am not set
Run Code Online (Sandbox Code Playgroud)
然而,这个函数并没有什么用处,因为它只会输出一个字符串。您可以创建一个接受变量并返回(如果存在)的函数(来自这篇文章):
function issetor(&$var, $default = false) {
return isset($var) ? $var : $default;
}
Run Code Online (Sandbox Code Playgroud)
现在可以这样使用:
echo issetor($fieldName); // If $fieldName exists, it will be printed
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
936 次 |
| 最近记录: |