Page 1 of 1

if and else execute together! (class extends)

Posted: Tue Mar 09, 2010 6:18 am
by ehsanch
i create a simple php script :

Code: Select all

 
<?php
class newclass {
    public function newfunc() {
        echo 'class exist';
    }
}
 
if (true) {
    class myclass1 extends newclass {}
}
else {
    class myclass2 extends newclass {}
}
 
$test = new myclass2;
$test->newfunc();
 
in browser i get
class exist
, but in cli i get
Fatal error: Class 'myclass2' not found in test.php on line 15
--------------------run with php vs php-cgi--------------------
[root@server]# php test.php
Fatal error: Class 'myclass2' not found in test.php on line 15

[root@server]# php-cgi test.php
X-Powered-By: PHP/5.2.6
Content-type: text/html
class exist

im astonished!

Re: if and else execute together! (class extends)

Posted: Tue Mar 09, 2010 9:18 am
by requinix
That could very well be a bug. The 5.2 branch is up to .13 I believe - upgrade to there and see if it still works like that.

But really: putting classes in a conditional block? Doesn't make sense.

Re: if and else execute together! (class extends)

Posted: Tue Mar 09, 2010 10:23 am
by AbraCadaver
Works as expected on 5.2.4.

Re: if and else execute together! (class extends)

Posted: Tue Mar 09, 2010 12:11 pm
by ehsanch
it work on another system with 5.2.6 and worked on this system before.
suddenly i get this ./
i think there is a configuration somewhere...

Re: if and else execute together! (class extends)

Posted: Tue Mar 09, 2010 1:08 pm
by ehsanch
Finally i found the cause after 1 full day.
this was because of XCache !
removing it solve problem.
hope save someones time...