在php中,是否有任何方法可以知道第一次初始化或分配变量值的位置或上次修改变量的位置?
我认为应该可以知道这一点,因为php在错误中提供了一些这样的提示。例如:Can not redeclare abc() (previously declared in /path/to/file.php)
编辑:
我需要这个是因为:

function abc() {
   global $page; //this should be int.
   if($page == 2) { ... }
}

但是当这个函数运行时,我得到错误Can not convert object into int。这是因为在我的代码中,$页的某些地方被任何对象重写。我需要找到修改过的地方。否则我就得把整个代码都翻一遍。

最佳答案

您可以使用本机php函数get_class()找出要将哪个对象分配给$page变量:

get_class($page);

通常需要使用单元测试来调试它,在单元测试中测试变量$page是否为数字。
如果只想在屏幕上调试,请尝试:
if(is_object($page)){
     die(get_class($page));
    }

或通过例外:
if(is_object($page)){
 throw new Exception('$page must be numeric object given of type : '.get_class($page));
}

这将帮助您找到哪个对象被分配给您的变量,只需指向正确的方向。

关于php - 如何知道变量在何处初始化或最后修改,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25639757/

10-15 06:57