首页 / 知识
php函数参数错误抑制,Empty()isset()仿真
2023-04-14 21:20:00

Php function argument error suppression, empty() isset() emulation我很确定这个问题的答案是否定的,但是如果有一些PHP专家
是否有可能编写一种函数,使其可以传入无效的参数或不存在的变量,并且不使用 就像empty和isset一样。 您可以传入一个刚创建的变量,它不会出错。
通过引用传递变量时不会出现任何错误(PHP会静默创建一个新变量):
但是我建议您不要滥用它以隐藏编程错误。 总结一下,正确的答案是"否",您不应该这样做(请参见下面的警告)。 该线程中已经有很多人提到过一些变通办法,例如在条件中使用引用变量或isset()或empty()并禁止PHP配置中的通知。除了明显的解决方法外,您还不需要使用@。 总结一下与Gerry进行的有趣的评论讨论:如果您在函数内检查变量的值并正确处理未定义或空的情况,则通过引用传递变量确实有效。只是不要使用引用传递作为关闭PHP的一种方式(这是我的原始文章不应该指向的地方)。 您可以这样使用func_get_args来做到这一点:
此函数进一步走了一步,将为您提供任意数量的args的第一个非空值(您可以始终强制它最多使用两个args,但这对我来说似乎更有用)。 编辑:原始版本没有使用compact来尝试使args数组,并且STILL给出了错误。错误报告增加了一个缺口,这个紧凑的新版本虽然没有那么整洁,但是仍然可以做同样的事情,并且允许您为不存在的var提供默认值。
在某些情况下,检查变得繁琐和不必要。
它不需要对myHappyFunction()进行任何更改。
至
明确说明您的意图。这是我书中的最佳做法。
是的你可以! porneL是正确的[编辑:我没有足够的积分可以链接到他的答案或投票,但是它在此页上] 当他警告"但我建议您不要滥用它以隐藏编程错误"时,他也是正确的。但是,出于同样的原因,也应避免通过错误控制运算符(@)进行错误抑制。 我是Stack Overflow的新手,但我希望不正确的答案在页面上排名最高而正确的答案未获得投票的情况并不常见。 :( 不,因为这实际上与该功能无关。该错误来自尝试取消引用不存在的数组键。您可以更改PHP设置的警告级别以消除这些错误,但是最好不要这样做。 话虽如此,你可以做类似的事情
并使用它代替数组键查找
现在我要洗个澡:)
只需一行,您就可以完成: 我希望这是您要寻找的。如果您阅读了php文档,则在默认参数值下,可以看到将默认值分配给函数的参数可以帮助您防止在使用函数时出现错误消息。 在此示例中,您可以看到使用默认参数的区别及其优点: PHP代码:
也可以将其与 如果仅向参数添加默认值,则可以在调用函数时跳过它。例如:
原始问题的答案是"否",但没有人提到任何选择。
当使用@符号时,所有PHP都在覆盖
在我想编写一个便利函数来检查并查看是否设置了变量并具有其他一些属性的情况下,这对我很有用,否则,返回默认值。但是,通过发送未设置的变量会引起PHP通知,因此我使用了@来禁止这样做,然后将 就像是:
因此,在上述情况下,如果未设置 如果不是实际问题,这可能是一个有用的选项,可以涵盖原始问题的实质内容。 肖恩,您可以这样做:
编辑:
我告诉过您,请使用 @Sean Brian已经回答了
我敢肯定,关于三元运算符vrs函数调用的讨论可能会很多。但是这个问题的重点是看是否可以创建一个函数,如果不使用'@'传递不存在的值,该函数将不会引发错误。
这将返回$ value或$ default。取决于$ value的值。如果为0,false,空或类似的内容,则将返回$ default中的值。 我更想挑战模拟empty()和isset()之类的函数 进一步深入到抽象树,您将其用于什么? 您可以根据需要在每个类中初始化这些值,也可以创建一个包含所有默认值和属性的特定类,例如:
这样的想法是,当在代码中到处使用defaultValue函数时,每当您必须更改值,查找放置了DefaultValue调用的所有位置时,它将成为维护的噩梦。而且可能还会导致您重复自己,违反了DRY。 而这是一个用于存储所有这些默认值的地方。您可能会想避免创建那些setter和getter,但是如果需要进行一些输出修改或输入验证,它们也将有助于维护。 |
最新内容
相关内容
调用函数命令linux?
调用函数命令linux?,系统,管理,网络,通用,统一,观察,地址,代码,设备,地方,怎么调用system函数,使用Android的linux命令1、int system(const chlinux命令忽略错误?
linux命令忽略错误?,系统,地址,工作,信息,设备,命令,设计,灵活,观察,标准,linux命令问题,在使用ls命令时,能不能不让输出错误信息--pid=进程号linux查询函数命令?
linux查询函数命令?,系统,信息,名称,标准,函数,百度,代码,名字,最新,实时,Linux下查找一个函数在哪个库文件中1、默认状态下,gcc并不搜索数学库深入理解python函数传参机制
深入理解python函数传参机制,培训,对象,函数,变量,类型,复本,下面,操作,机制,内存,首先需要申明的一点是,python里是没有像C和C++里那样按值传Python中的匿名函数lambda
Python中的匿名函数lambda,代码,地方,名字,主体,名称,培训,函数,表达式,赋值,语句,简述除了def语句之外,Python还提供了一种生成函数对象的表Python有哪些常用函数?
Python有哪些常用函数?,数据,函数,地址,数字,培训,工作,网络,位置,字符串,字符,Python常用函数有哪些?我想大家都比较好奇这个问题,今天小编特python的filter,lambda函数表达式
python的filter,lambda函数表达式,代码,函数,名称,培训,列表,参数,知识点,表达式,约数,元素,filter(functionorNone,sequence),其中sequence可python字符串处理函数大总结
python字符串处理函数大总结,位置,数字,异常,培训,字符串,空格,长度,两边,字母,函数,str=pythonStringfunction生成字符串变量str=pythonStriPython列表操作的函数和方法
Python列表操作的函数和方法,位置,培训,列表,元素,操作,函数,末尾,方法,对象,以下,·Python列表操作包含以下函数:1、cmp(list1,list2):比较两python中文件操作的一些函数
python中文件操作的一些函数,培训,文件,函数,模式,操作,序列,二进制文件,标识符,列表,括号,文件操作的所有函数:注意python2与3有些函数的用法68个Python内置函数详解
68个Python内置函数详解,位置,数字,数据,设计,第三,基础,综合,培训,函数,小数,内置函数就是Python给你提供的,拿来直接用的函数,比如print.,inpu17个新手常见Python运行时错误
17个新手常见Python运行时错误,代码,错误,培训,变量,函数,局部,操作,定义,列表,实际,当初学Python时,想要弄懂Python的错误信息的含义可能有点