Hello internals,
version 5 does neither support nested classes nor conditional classes.
Not supporting the former is a bit of a loss but the latter leads to
ugly software design so no worry here.
Anyway i tried the test script with 4.3.5-dev and there conditional
classes are present but not working. Hence i suggest we disable or fix
them.
Further more i think we cannot fix it becasue the script mixes compile
time and run time. It tries something like selfmodifying code.
Since i think it is ugly software design anyways i am pro disabling.
marcus@zaphod /usr/src/PHP_4_3_0 $ php -r 'if (1) {class a{function f(){return 1;}}}else{class a{function f(){return 0;}}}echo a::f()."\n";'
0
marcus@zaphod /usr/src/PHP_4_3_0 $ php -r 'if (0) {class a{function f(){return 1;}}}else{class a{function f(){return 0;}}}echo a::f()."\n";'
0
--
Best regards,
Marcus mailto:helly@php.net
Marcus Boerger wrote:
Further more i think we cannot fix it becasue the script mixes compile
time and run time. It tries something like selfmodifying code.
I agree that it should be disabled. If someone really, really wants to
do it they can still include/eval conditionally.
- Chris
Hello Christian,
Monday, January 5, 2004, 3:58:22 PM, you wrote:
Marcus Boerger wrote:
Further more i think we cannot fix it becasue the script mixes compile
time and run time. It tries something like selfmodifying code.
I agree that it should be disabled. If someone really, really wants to
do it they can still include/eval conditionally.
And in php 5 one can use the __autoload() feature which is the correct
choice for such designs where classes are optional.
--
Best regards,
Marcus mailto:helly@php.net
This is strange. I remember it used to work. We'll look into it.
Andi
At 03:37 PM 1/5/2004 +0100, Marcus Boerger wrote:
Hello internals,
version 5 does neither support nested classes nor conditional classes.
Not supporting the former is a bit of a loss but the latter leads to
ugly software design so no worry here.Anyway i tried the test script with 4.3.5-dev and there conditional
classes are present but not working. Hence i suggest we disable or fix
them.Further more i think we cannot fix it becasue the script mixes compile
time and run time. It tries something like selfmodifying code.Since i think it is ugly software design anyways i am pro disabling.
marcus@zaphod /usr/src/PHP_4_3_0 $ php -r 'if (1) {class a{function
f(){return 1;}}}else{class a{function f(){return 0;}}}echo a::f()."\n";'
0
marcus@zaphod /usr/src/PHP_4_3_0 $ php -r 'if (0) {class a{function
f(){return 1;}}}else{class a{function f(){return 0;}}}echo a::f()."\n";'
0--
Best regards,
Marcus mailto:helly@php.net
I fixed this problem. I agree it's not great coding but there's no real
reason to break BC on this issue.
I also fixed the problem with conditional function declerations being on
the same line.
Andi
At 03:37 PM 1/5/2004 +0100, Marcus Boerger wrote:
Hello internals,
version 5 does neither support nested classes nor conditional classes.
Not supporting the former is a bit of a loss but the latter leads to
ugly software design so no worry here.Anyway i tried the test script with 4.3.5-dev and there conditional
classes are present but not working. Hence i suggest we disable or fix
them.Further more i think we cannot fix it becasue the script mixes compile
time and run time. It tries something like selfmodifying code.Since i think it is ugly software design anyways i am pro disabling.
marcus@zaphod /usr/src/PHP_4_3_0 $ php -r 'if (1) {class a{function
f(){return 1;}}}else{class a{function f(){return 0;}}}echo a::f()."\n";'
0
marcus@zaphod /usr/src/PHP_4_3_0 $ php -r 'if (0) {class a{function
f(){return 1;}}}else{class a{function f(){return 0;}}}echo a::f()."\n";'
0--
Best regards,
Marcus mailto:helly@php.net