|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2005-01-10 21:08 UTC] jed@php.net
[2005-01-10 21:12 UTC] derick@php.net
[2005-01-10 21:23 UTC] public at grik dot net
[2005-01-10 21:25 UTC] public at grik dot net
[2005-01-10 23:32 UTC] derick@php.net
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Wed Dec 10 06:00:02 2025 UTC |
Description: ------------ When I moved my classes hierarchy code from the PHP 4 to the PHP 5 and renamed costructors from the class names to "__construct", I faced a segmentation fault. The constructor calls the parent's constructor. Parent's constructor calls another method, overloaded in the child's class. That overloaded method from the child's class calls the constructor that calls the parent's constructor again. But instead of the endless loop I get the segfault. Reproduce code: --------------- class A{ function a1(){ echo ' class a '; } function a2(){ $this->a1(); } } class B extends A { function a1(){ $this->a2(); } function __construct(){ parent::a2(); } } $a= new B(); Expected result: ---------------- Really, I would like to see the output of " class a " string, cause it's not convenient to rewrite all occurences of $this->method() to self::method in the base classes. But I understand there is a new paradigm of "final" methods now and I will use it. I would like to see the endless loop until script execution time expires: B::a1() calls A::a2() and vice versa Actual result: -------------- Segmentation fault