PHP 5.3.0 kullanma.
Ben (php -a
veya php -r
) ile kabuk kodunu çalıştırırken 0 hattına işaret hataları alabilirsiniz biliyorum. Ben de bir istisna bir özel durum işleyici yürütme sürecinde atıldığında Satır 0 hataları alabilirsiniz biliyorum. Bu PHP bir hata için bir satır numarası ile beni sağlamak mümkün olmayabilir neden mantıklı nedenleri vardır. Ama şimdi ben bu diğer iki şeyden birini yapmıyorum bile çizgiyi 0 hataları alıyorum. Bu tür bir şey:
Fatal error: Call to a member function items() on a non-object in /Users/ole/pap/gtd/fu/lib/tree.php on line 0
Ben sadece PHP bana bu hatalar için uygun bir satır numarası vererek olmayabilir neden nedenle burada benim kod hata ayıklama yardım için sormuyorum. Neyse, bu son hata aslında hattı 237 (değişken yanlış yazıldığından değil sadece basit bir durum) üzerinde olduğu ortaya çıktı.
Peki ben yaptım kasten hata girmiştir ve debug_print_backtrace()
için bir çağrı koymak. İşte ne var:
#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]
Orada doğru ilerleyin Eğer özyineleme benim veri yapılarının yükler (bu ben üzerinde çalışıyorum kodu ile beklenen) var olduğunu göreceksiniz. Ama aksi takdirde bu özellikle uzun yığını değildir.
Bir google ben etrafında bulmak için yönetilen sonra some guy's error log kim aynı sorun var gibi görünüyor.
PHP hata bu konuda bilgi ararken çalıştı ama arama sistemi bana bazı terimlerin ihmal isteyen olmadan "on line 0"
aramak için izin için yeterince güçlü değildir; önemli olanları.