PHP引用的一个问题
程序员文章站
2022-06-04 17:07:48
...
网上看到这么一句话
如果对一个未定义的变量进行引用赋值、引用参数传递或引用返回,则会自动创建该变量。并且指向NULL
经常用 isset 来判断一个值是否存在,如果直接输出某个不存在的值会报错。
但如果我用引用的方式,是否可以替代isset,是否会印象性能
这样$_GET['id']不存在也不会报错,存在了,就引用给变量 $id
如果对一个未定义的变量进行引用赋值、引用参数传递或引用返回,则会自动创建该变量。并且指向NULL
经常用 isset 来判断一个值是否存在,如果直接输出某个不存在的值会报错。
但如果我用引用的方式,是否可以替代isset,是否会印象性能
$id=&$_GET['id']
这样$_GET['id']不存在也不会报错,存在了,就引用给变量 $id
回复讨论(解决方案)
$id =& $_GET['id'];
和
$id = @$_GET['id'];
对 $id 而言是等效的
但 $id =& $_GET['id']; 后
对 $id 的任何修改都会影响到 $_GET['id'],这样就可能会使程序的其他使用 $_GET['id'] 的部分出问题
如果仅仅是为了回避 Notice 级别错误,大可不必这样做
判别传入参数是否正确是很有必要的,尤其是单入口系统,传入的参数会影响整个工作流程
没有其他不同的看法吗
看来得结贴了
推荐阅读
-
利用php实现禁用IE和火狐的缓存问题
-
一个PHP数组应该有多大的分析
-
vue 解决循环引用组件报错的问题
-
python的描述符(descriptor)、装饰器(property)造成的一个无限递归问题分享
-
关于PHP5.6+版本“No input file specified”问题的解决
-
[PHP] 算法-统计一个数字在排序数组中出现的次数的PHP实现
-
Asp.net中处理一个站点不同Web应用共享Session的问题
-
在SQL Server中使用SQL语句查询一个存储过程被其它所有的存储过程引用的存储过程名
-
一个用mysql_odbc和php写的serach数据库程序
-
一个简单的php实现的MySQL数据浏览器