gpt4 book ai didi

php - 在 PHP 中指向 "line 0"时出错

转载 作者:可可西里 更新时间:2023-10-31 23:50:41 25 4
gpt4 key购买 nike

使用 PHP 5.3.0。

我知道从 shell 执行代码(使用 php -aphp -r)时,您可能会得到指向第 0 行的错误。我还知道在执行自定义异常处理程序的过程中抛出异常时,您可能会收到第 0 行错误。这些是 PHP 可能无法为我提供错误行号的合乎逻辑的原因。但是现在我收到第 0 行错误,即使我没有做其他两件事中的任何一件。这种事情:

fatal error :在第 0 行/Users/ole/pap/gtd/fu/lib/tree.php 中的非对象上调用成员函数 items()

我在这里寻求调试我的代码的帮助并不是因为 PHP 可能没有为这些错误提供正确的行号。不管怎样,最后一个错误实际上是在第 237 行(只是一个简单的 not variable 拼写错误的例子)。

所以我所做的是故意重新引入错误并调用 debug_print_backtrace()。这是我得到的:

#0  FuTreeSerializer->serialize(FuLinkedTreeNodeList Object ([outer] => ,[items] => Array ([0] => FuTreeNode Object ([outer] => ,[inners] => FuLinkedTreeNodeList Object ([outer] => FuTreeNode Object ( *RECURSION*,[items] => Array ()),[value] => foo,[next] => FuTreeNode Object ([outer] => ,[inners] => FuLinkedTreeNodeList Object ([outer] => FuTreeNode Object ( *RECURSION*,[items] => Array ()),[value] => bar,[next] => FuTreeNode Object ([outer] => ,[inners] => FuLinkedTreeNodeList Object ([outer] => FuTreeNode Object ( *RECURSION*,[items] => Array ()),[value] => foo,[next] => FuTreeNode Object ([outer] => ,[inners] => FuLinkedTreeNodeList Object ([outer] => FuTreeNode Object ( *RECURSION*,[items] => Array ()),[value] => zim,[next] => ,[prev] => FuTreeNode Object ( *RECURSION*,[ofList] => FuLinkedTreeNodeList Object ( *RECURSION*),[prev] => FuTreeNode Object ( *RECURSION*,[ofList] => FuLinkedTreeNodeList Object ( *RECURSION*),[prev] => FuTreeNode Object ( *RECURSION*,[ofList] => FuLinkedTreeNodeList Object ( *RECURSION*),[prev] => ,[ofList] => FuLinkedTreeNodeList Object ( *RECURSION*),[1] => FuTreeNode Object ([outer] => ,[inners] => FuLinkedTreeNodeList Object ([outer] => FuTreeNode Object ( *RECURSION*,[items] => Array ()),[value] => bar,[next] => FuTreeNode Object ([outer] => ,[inners] => FuLinkedTreeNodeList Object ([outer] => FuTreeNode Object ( *RECURSION*,[items] => Array ()),[value] => foo,[next] => FuTreeNode Object ([outer] => ,[inners] => FuLinkedTreeNodeList Object ([outer] => FuTreeNode Object ( *RECURSION*,[items] => Array ()),[value] => zim,[next] => ,[prev] => FuTreeNode Object ( *RECURSION*,[ofList] => FuLinkedTreeNodeList Object ( *RECURSION*),[prev] => FuTreeNode Object ( *RECURSION*,[ofList] => FuLinkedTreeNodeList Object ( *RECURSION*),[prev] => FuTreeNode Object ([outer] => ,[inners] => FuLinkedTreeNodeList Object ([outer] => FuTreeNode Object ( *RECURSION*,[items] => Array ()),[value] => foo,[next] => FuTreeNode Object ( *RECURSION*,[prev] => ,[ofList] => FuLinkedTreeNodeList Object ( *RECURSION*),[ofList] => FuLinkedTreeNodeList Object ( *RECURSION*),[2] => FuTreeNode Object ([outer] => ,[inners] => FuLinkedTreeNodeList Object ([outer] => FuTreeNode Object ( *RECURSION*,[items] => Array ()),[value] => foo,[next] => FuTreeNode Object ([outer] => ,[inners] => FuLinkedTreeNodeList Object ([outer] => FuTreeNode Object ( *RECURSION*,[items] => Array ()),[value] => zim,[next] => ,[prev] => FuTreeNode Object ( *RECURSION*,[ofList] => FuLinkedTreeNodeList Object ( *RECURSION*),[prev] => FuTreeNode Object ([outer] => ,[inners] => FuLinkedTreeNodeList Object ([outer] => FuTreeNode Object ( *RECURSION*,[items] => Array ()),[value] => bar,[next] => FuTreeNode Object ( *RECURSION*,[prev] => FuTreeNode Object ([outer] => ,[inners] => FuLinkedTreeNodeList Object ([outer] => FuTreeNode Object ( *RECURSION*,[items] => Array ()),[value] => foo,[next] => FuTreeNode Object ( *RECURSION*,[prev] => ,[ofList] => FuLinkedTreeNodeList Object ( *RECURSION*),[ofList] => FuLinkedTreeNodeList Object ( *RECURSION*),[ofList] => FuLinkedTreeNodeList Object ( *RECURSION*),[3] => FuTreeNode Object ([outer] => ,[inners] => FuLinkedTreeNodeList Object ([outer] => FuTreeNode Object ( *RECURSION*,[items] => Array ()),[value] => zim,[next] => ,[prev] => FuTreeNode Object ([outer] => ,[inners] => FuLinkedTreeNodeList Object ([outer] => FuTreeNode Object ( *RECURSION*,[items] => Array ()),[value] => foo,[next] => FuTreeNode Object ( *RECURSION*,[prev] => FuTreeNode Object ([outer] => ,[inners] => FuLinkedTreeNodeList Object ([outer] => FuTreeNode Object ( *RECURSION*,[items] => Array ()),[value] => bar,[next] => FuTreeNode Object ( *RECURSION*,[prev] => FuTreeNode Object ([outer] => ,[inners] => FuLinkedTreeNodeList Object ([outer] => FuTreeNode Object ( *RECURSION*,[items] => Array ()),[value] => foo,[next] => FuTreeNode Object ( *RECURSION*,[prev] => ,[ofList] => FuLinkedTreeNodeList Object ( *RECURSION*),[ofList] => FuLinkedTreeNodeList Object ( *RECURSION*),[ofList] => FuLinkedTreeNodeList Object ( *RECURSION*),[ofList] => FuLinkedTreeNodeList Object ( *RECURSION*))), -1) called at [/Users/ole/pap/gtd/fu/lib/tree.php:128]
#1 FuLinkedTreeNodeList->asStr() called at [/Users/ole/pap/gtd/fu/spec/tree.php:52]
#2 FuTreeNodeSpec->_select()
#3 ReflectionMethod->invoke(FuTreeNodeSpec Object ([methodPatterns] => Array ([run] => /^_/,[skip] => /^skip/i),[specCallTrace] => Array ([0] => Array ([function] => __call,[class] => PweVerifierInjecter,[object] => PweVerifierInjecter Object ([spec] => FuTreeNodeSpec Object ( *RECURSION*,[subj] => 1),[type] => ->,[args] => Array ([0] => shouldBe,[1] => Array ([0] => 1))),[1] => Array ([file] => /Users/ole/pap/gtd/fu/spec/tree.php,[line] => 47,[function] => shouldBe,[class] => PweVerifierInjecter,[object] => PweVerifierInjecter Object ([spec] => FuTreeNodeSpec Object ( *RECURSION*,[subj] => 1),[type] => ->,[args] => Array ([0] => 1)),[2] => Array ([function] => _list_equality,[class] => FuTreeNodeSpec,[object] => FuTreeNodeSpec Object ( *RECURSION*,[type] => ->,[args] => Array ()),[3] => Array ([file] => /Users/ole/pap/gtd/fu/lib/pwe.php,[line] => 187,[function] => invoke,[class] => ReflectionMethod,[object] => ReflectionMethod Object ([name] => _list_equality,[class] => FuTreeNodeSpec),[type] => ->,[args] => Array ([0] => FuTreeNodeSpec Object ( *RECURSION*)),[4] => Array ([file] => /Users/ole/pap/gtd/fu/lib/pwe.php,[line] => 192,[function] => each,[class] => PweSpec,[object] => FuTreeNodeSpec Object ( *RECURSION*,[type] => ->,[args] => Array ([0] => ReflectionMethod Object ([name] => _list_equality,[class] => FuTreeNodeSpec))),[5] => Array ([file] => /Users/ole/pap/gtd/fu/lib/pwe.php,[line] => 207,[function] => runMethods,[class] => PweSpec,[object] => FuTreeNodeSpec Object ( *RECURSION*,[type] => ->,[args] => Array ()),[6] => Array ([file] => /Users/ole/pap/gtd/fu/lib/pwe.php,[line] => 35,[function] => run,[class] => PweSpec,[object] => FuTreeNodeSpec Object ( *RECURSION*,[type] => ->,[args] => Array ([0] => PweTracker Object ([passes] => 33,[failures] => 0,[skips] => 0))),[7] => Array ([file] => /Users/ole/pap/gtd/fu/-,[line] => 4,[function] => runDefined,[class] => PweRunner,[object] => PweRunner Object ([specPattern] => /Spec$/i),[type] => ->,[args] => Array ())),[tracker] => PweTracker Object ([passes] => 33,[failures] => 0,[skips] => 0),[activeMethod] => ReflectionMethod Object ([name] => _select,[class] => FuTreeNodeSpec))) called at [/Users/ole/pap/gtd/fu/lib/pwe.php:187]
#4 PweSpec->each(ReflectionMethod Object ([name] => _select,[class] => FuTreeNodeSpec)) called at [/Users/ole/pap/gtd/fu/lib/pwe.php:192]
#5 PweSpec->runMethods() called at [/Users/ole/pap/gtd/fu/lib/pwe.php:207]
#6 PweSpec->run(PweTracker Object ([passes] => 33,[failures] => 0,[skips] => 0)) called at [/Users/ole/pap/gtd/fu/lib/pwe.php:35]
#7 PweRunner->runDefined() called at [/Users/ole/pap/gtd/fu/-:4]

如果您向右滚动,您会看到我的数据结构中有大量递归(这是我正在处理的代码所期望的)。但除此之外,这并不是一个特别长的堆栈。

经过谷歌搜索后,我设法找到了 some guy's error log谁似乎有同样的问题。

我尝试在 PHP 错误上搜索有关此的信息,但搜索系统不够强大,无法让我搜索 "on line 0" 而不想省略某些术语;重要的。

最佳答案

看起来析构函数中有一些错误。为了找到它,我建议将错误转换为异常(ErrorException,请参阅 php 手册)/

关于php - 在 PHP 中指向 "line 0"时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1564103/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com