#2202 inherit method is not updated when parent class file updated
Submitted: 2004-08-24 03:34 UTC
From: xuefer at 21cn dot com Assigned:
Status: Open Package:
PHP Version: 4.3.3 OS: linux
Roadmaps: (Not assigned)    
Subscription  


 [2004-08-24 03:34 UTC] xuefer at 21cn dot com
Description: ------------ 1. load test.php in browser (via apache+php+apc) 2. update "in p2" to "in p2**" (*** is random text) 3. reload test.php, nothing changed (even with ctrl+f5 in ie, reload with nocache) 4. uncomment class p3::set 5. do 1-3, message is updated Reproduce code: --------------- test.php: require("./p12.php"); require("./p3.php"); $p3 = new p3(); $p3->set(); p12.php class p1 { function set() { echo "in p1<br>"; } } class p2 extends p3 { function set() { echo "in p2<br>"; return parent::set(); } } p3.php class p3 extends p2 { /* if this exists, no error function set() { echo "in p3<br>"; return parent::set(); } */ }

Comments

 [2004-09-07 04:16 UTC] User who submitted this comment has not confirmed identity
If you submitted this note, check your email.If you do not have a message, click here to re-send
MANUAL CONFIRMATION IS NOT POSSIBLE.  Write a message to pear-dev@lists.php.net
to request the confirmation link.  All bugs/comments/patches associated with this

email address will be deleted within 48 hours if the account request is not confirmed!
 [2004-09-07 08:38 UTC] xuefer at 21cn dot com
sorry, it's my typo while reporting this bug class p3 extends p2 class p2 extends p1 (not p3) p1 and p2 in same file(p12.php), while p3 is alone(p3.php) update code in class p2::set() (file p12.php) no errors/warnnings, but result it wrong may times i have to re-update the file or clear apc cache
 [2004-09-07 16:42 UTC] User who submitted this comment has not confirmed identity
If you submitted this note, check your email.If you do not have a message, click here to re-send
MANUAL CONFIRMATION IS NOT POSSIBLE.  Write a message to pear-dev@lists.php.net
to request the confirmation link.  All bugs/comments/patches associated with this

email address will be deleted within 48 hours if the account request is not confirmed!
 [2004-09-07 17:19 UTC] xuefer at 21cn dot com
updated summary. verified with lastest apc i think my mistake make u ignored my "reproduce steps" step 1-3 is required to reproduce the bug without p3::set, compare result of 3 to 1, result is(but shouldn't be) same until i `touch p3.php`, this is the bug. u may try steps2-3 more times step 4-5 is an exception of the bug(i.e.: not a bug) i've once trace apc optimizer, and noticed some function opcode is optimized twice. (the following notes is just my guessing, hope it help to explain this bug) situtation 1: without p3::set it seems apc copied all methods from p2 (p2::set) to class p3, once p2 is updated, p3 is not, this is the bug situtation 1: with p3::set p3 has it's own p3::set thus won't copy p2::set to p3::set, thus not triggering this bug
 [2004-09-07 17:43 UTC] User who submitted this comment has not confirmed identity
If you submitted this note, check your email.If you do not have a message, click here to re-send
MANUAL CONFIRMATION IS NOT POSSIBLE.  Write a message to pear-dev@lists.php.net
to request the confirmation link.  All bugs/comments/patches associated with this

email address will be deleted within 48 hours if the account request is not confirmed!
 [2004-09-12 06:39 UTC] xuefer at 21cn dot com
my config is: extension = apc.so apc.enabled = 1 apc.optimization = 1 apc.ttl = 3600 verified with: apc.enabled = 1 apc.optimization = 0 ok with: apc.enabled = 0 apc.optimization = 0
 [2004-09-19 07:30 UTC] User who submitted this comment has not confirmed identity
If you submitted this note, check your email.If you do not have a message, click here to re-send
MANUAL CONFIRMATION IS NOT POSSIBLE.  Write a message to pear-dev@lists.php.net
to request the confirmation link.  All bugs/comments/patches associated with this

email address will be deleted within 48 hours if the account request is not confirmed!