如何检查变量是否在PHP中通过引用传递

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了如何检查变量是否在PHP中通过引用传递脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
直截了当:
我想写一些代码来告诉变量是否通过引用传递.
例如:

<?PHP
function isReference($VARiable) {
    //return TRUE if &amp;$something was passed
    //return FALSE if $something was passed
}
$text = 'Anything';
$a = isReference(&$text); //return TRUE
$b = isReference($test); //return FALSE
?>

对于那些好奇的人 – 我为什么需要它?
首先,我不想留下未解决的问题.
其次,我目前通过编写MysqLi的扩展来增强技能,这将扩展类似于PDO的方式.如果有人知道PDO中bindParam和bindValue之间的区别,他们知道这是这个问题的解决方法.我可以做两个函数,但我想知道是否可以使用一个函数.

提前致谢.

解决方法

这是一种不使用debug_zval_dump函数方法

function isReference($variable) {
    $variable = array($variable);
    $arg = func_get_arg(0);
    $isRef = isset($arg[0]) && $arg === array($variable[0]);
    $variable = $variable[0];

    return $isRef;
}

注意:如果这不起作用,只有一个案例:

$text = array(&$text); // although i don't see why such a structure Could be used
isReference($text); // will wrongly return false

显然,您可以通过使用随机唯一键(而不是0)来绕过此限制.

脚本宝典总结

以上是脚本宝典为你收集整理的如何检查变量是否在PHP中通过引用传递全部内容,希望文章能够帮你解决如何检查变量是否在PHP中通过引用传递所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。