Re: echo returnArray()['a']; // workaround
| From: | Casey | Date: | Fri, 29 Feb 2008 05:06:43 +0000 |
| Subject: | Re: echo returnArray()['a']; // workaround | ||
| References: | 1 2 3 4 5 6 7 8 9 10 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-270709@lists.php.net to get a copy of this message | ||
On Thu, Feb 28, 2008 at 8:42 PM, Casey <heavyccasey@gmail.com> wrote:
>
> On Thu, Feb 28, 2008 at 8:38 PM, Nathan Rixham <nrixham@gmail.com> wrote:
> >
> > Robert Cummings wrote:
> > > On Thu, 2008-02-28 at 23:27 -0500, Robert Cummings wrote:
> > >> On Fri, 2008-02-29 at 04:04 +0000, Nathan Rixham wrote:
> > >>> Robert Cummings wrote:
> > >>>> On Fri, 2008-02-29 at 00:18 +0000, Nathan Rixham wrote:
> > >>>>> don't say I didn't warn ya fellow nathan!
> > >>>>>
> > >>>>> #!/usr/bin/php
> > >>>>> <?php
> > >>>>> function sillyFunc() {
> > >>>>> return array('a' => 1, 'b' => 2,
> > >>>>> 'c' => 3, 'd' => 4, 'e'=>'some string');
> > >>>>> }
> > >>>>>
> > >>>>> echo
> > >>>>> !${~${''}='sillyFunc'}=&${''}().${~${''}}['e']
> > >>>>> . PHP_EOL;
> > >>>>
> > >>>> I was ready to use this system everywhere in my code until I saw that
> > >>>> it
> > >>>> generates an E_STRICT... now I'll just have to keep with what I
> > >>>> usually
> > >>>> do.
> > >>>>
> > >>>> Cheers,
> > >>>> Rob.
> > >>> scratch the former!
> > >>>
> > >>> FIXED>>
> > >>>
> > >>> echo
> > >>> !(${~${''}='sillyFunc'}=${''}()).${~${''}}['e'] .
> > >>> PHP_EOL;
> > >> Ok, I lied... I'm not really gonna use it. Interesting tidbit of
> > >> obfuscation though.
> > >
> > > BTW... the following is shorter:
> > >
> > > echo ${~${''}='sillyFunc'}['e'] . PHP_EOL;
> > >
> > > Cheers,
> > > Rob.
> >
> > but doesn't work over here.. php 5.2.4 && 5
> >
> >
> >
> Doesn't work for me either. Here's mine:
>
> function ReturnArray() {
> return array('a' => 'f', 'b' =>
> 'g', 'c' => 'h', 'd' => 'i', 'e'
> => 'j');
> }
> echo ${(${0}=ReturnArray())&0}['a'];
>
> --
> -Casey
>
By the way, this could be compressed simply to
echo ${!${!1}=ReturnArray()}['a'];
I don't know why I'm continuing this... but for the truly crazy:
function w(&$t) {
$t = array('f' => '...');
return 't';
}
echo ${w($t)}['f'];
--
-Casey