PHP引用的一个问题
程序员文章站
2022-05-29 20:35:08
...
网上看到这么一句话
如果对一个未定义的变量进行引用赋值、引用参数传递或引用返回,则会自动创建该变量。并且指向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 级别错误,大可不必这样做
判别传入参数是否正确是很有必要的,尤其是单入口系统,传入的参数会影响整个工作流程
没有其他不同的看法吗
看来得结贴了
推荐阅读
-
一个单引号引发的MYSQL性能问题分析
-
PHP解决URL中文GBK乱码问题的两种方法
-
DirectoryInfo引用一个相对目录的实例
-
在SQL Server中使用SQL语句查询一个存储过程被其它所有的存储过程引用的存储过程名
-
PHP、Nginx、Apache中禁止网页被iframe引用的方法
-
关于PHP中Session文件过多的问题及session文件保存位置
-
SQL order by ID desc/asc加一个排序的字段解决查询慢问题
-
一个严格的PHP Session会话超时时间设置方法
-
mysql 一个较特殊的问题:You can't specify target table 'wms_cabinet_form'
-
一个PHP二维数组排序的函数分享