Eric Gorr wrote: > > On Mar 14, 2008, at 3:15 PM, Eric Gorr wrote: > >> >> On Mar 14, 2008, at 3:10 PM, Stut wrote: >> >>> On 14 Mar 2008, at 19:03, Eric Gorr wrote: >>>> Unfortunately, such things cannot be used to wrap functions. >>> >>> Erm, yes they can. Try it. >>> >>> <?php >>> if (rand(0,1) == 0) >>> { >>> function arse() >>> { >>> echo "arse 1\n"; >>> } >>> } >>> else >>> { >>> function arse() >>> { >>> echo "arse 2\n"; >>> } >>> } >>> >>> arse(); >>> ?> >>> >> >> Gives: >> >> Parse error: syntax error, unexpected T_STRING in >> /Users/Eric/Sites/ifWrapping.php on line 3 > > Oh, sorry, apparently there are some invisible characters in the text > you pasted which I had to zap first. Yes, this does work as expected. > > However, try wrapping the arse function in a class. > > <?php > class TestClass > { > if ( rand(0,1) == 0 ) > { > function arse() > { > echo "arse 1\n"; > } > } > else > { > function arse() > { > echo "arse 2\n"; > } > } > > } > > $myVar = new TestClass; > > $myVar->arse(); > ?> > > > That fails with: > > > Parse error: syntax error, unexpected T_IF, expecting T_FUNCTION in > /Users/Eric/Sites/ifWrapping.php on line 4 > > Never tried it in a class. There is probably a way to hack and get it to work. However, unless you're doing something so much more sophisticated than most people, what's wrong with this? <?php class TestClass { function arse() { if ( rand(0,1) == 0 ) { echo "arse 1\n"; } else { echo "arse 2\n"; } } } $myVar = new TestClass; $myVar->arse(); ?> -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php