使用isset()的自定义函数在使用时返回未定义的变量 [英] custom function that uses isset() returning undefined variables when used

查看:78
本文介绍了使用isset()的自定义函数在使用时返回未定义的变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个字段,如果满足特定条件,则该字段具有自定义文本...如果不是,则该字段为空白.

I have a field that depends has custom text if a certain condition is met...and if it isn't the field is blank.

我写了一个自定义功能测试,是否设置了变量

I have written a custom function test if a variable is set

function AmISet($fieldName) {

if (isset($fieldName)) {

    echo "I am set";
}else{
    echo "I am not set";    
    }
};

但是当我将其附加到字段时,我得到一个错误,指出该变量未定义.但是当我执行常规的isset($fieldName); 我没问题有什么办法可以解决这个问题,并让我的函数代替isset()吗?

but when I attach it the field I get an error that the variable is undefined. But when I do a regular isset($fieldName); I don't have a problem. Is there any way to get around this and have my function do this instead of the isset()?

我想在函数中添加其他逻辑,但是我只希望它在设置了变量的情况下起作用...但是我不希望未定义的错误.

I want to add other logic in the function but I only want it to work if the variable is set...but I don't want the undefined error if it is not.

我是php的新手,非常感谢您能给我的任何帮助或指导. 谢谢您的帮助!

I am new to php and really appreciate any help or direction you can give me. Thank you for the help!

推荐答案

您需要通过引用传递变量:

You need to pass the variable by reference:

function AmISet(&$fieldName) {
    if (isset($fieldName)) {
        echo "I am set\n";
    } else {
        echo "I am not set\n";    
    }
}

测试用例:

$fieldName = 'foo';
AmISet($fieldName); // I am set

unset($fieldName);
AmISet($fieldName); // I am not set

但是,此函数实际上没有用,因为它只会输出一个字符串.您可以创建一个接受变量的函数,如果变量存在则返回(来自

However, this function is not useful as it is, because it will only output a string. You can create a function that accepts a variable and return if it exists (from this post):

function issetor(&$var, $default = false) {
    return isset($var) ? $var : $default;
}

现在可以像这样使用了:

Now it can be used like so:

echo issetor($fieldName); // If $fieldName exists, it will be printed

这篇关于使用isset()的自定义函数在使用时返回未定义的变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆