php 变量的引用传递,php – 只能通过引用传递变量

我有一个很好的想法,使用一个自定义错误处理程序,这导致我下了一个兔子洞。

以下代码给出(使用和不使用自定义错误处理程序):致命错误:只能通过引用传递变量

function foo(){

$b=array_pop(array("a","b","c"));

return $b;

}

print_r(foo());

以下代码给出(只有自定义错误处理程序):(2048)只有变量应该被引用传递

function foo(){

$a=explode( '/' , 'a/b/c');

$c=array_pop(array_slice($a,-2,1));

return $c;

}

print_r(foo());

第二个担心我,因为我有很多“紧凑”代码。所以,我也可以使用自定义错误处理程序(改进我的日志记录模块)或扩展我的所有代码的明智想法。

任何人有更好的想法?另外,WTF?

更新:

感谢答案,我学到了一些关于PHP如何处理错误的内容。不包括E_STRICT(php 5)的E_ALL的混淆并不酷。

最重要的是,创建自己的自定义错误处理程序可以默认启用E_STRICT,并且在哪里出现问题。

故事的道德是使用自己的错误处理程序来捕获它们,并使用错误常量(E_STRICT,E_USER_WARNING,E_USER_ERROR等)进行过滤。

对于具有变量引用和某些功能的“内存损坏问题”,我可以说什么?双重非冷却我会(这并不意味着你应该)在我的错误处理程序中忽略E_STRICT,并且生命继续下去。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值