[PHP] 'Dubbele' referentie werkt niet?

Pagina: 1
Acties:
  • 111 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Icelus
  • Registratie: Januari 2004
  • Niet online
Weet iemand waarom de eerste syntax niet correct is uit onderstaand voorbeeld?
Of is dit gewoon niet mogelijk in PHP?
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class Foo1
{
   function getValue()
   {
      return 'Hello, world!';
   }
}

class Foo2
{
   function getValue()
   {
      return new Foo1();
   }
}


$foo = new Foo2();

// Werkt niet
echo $foo->getValue()->getValue();

// Werkt wel
$temp = $foo->getValue();
echo $temp->getValue();

Developer Accused Of Unreadable Code Refuses To Comment


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

Het heeft weinig met references te maken, maar alles met het brakke expression systeem van PHP. Het kan niet, live with it :)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • Cyphax
  • Registratie: November 2000
  • Laatst online: 19:48

Cyphax

Moderator LNX
Gaat dat in PHP5 ook nog steeds niet?

Saved by the buoyancy of citrus


Acties:
  • 0 Henk 'm!

  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

Het gaat wel in PHP5!

Juist getest!

Going for adventure, lots of sun and a convertible! | GMT-8


Acties:
  • 0 Henk 'm!

  • djc
  • Registratie: December 2001
  • Laatst online: 08-09 23:18

djc

Dat is één van de naarste beperkingen van PHP 4. Gelukkig is deze in PHP 5 opgelost.

Rustacean


Acties:
  • 0 Henk 'm!

  • Cyphax
  • Registratie: November 2000
  • Laatst online: 19:48

Cyphax

Moderator LNX
snake903 schreef op donderdag 15 juni 2006 @ 15:35:
Het gaat wel in PHP5!

Juist getest!
Nou je het zegt, ik heb ook een hoop van dit soort constructies gebruikt in PHP5 en dat werkt inderdaad feilloos.

Dus de oplossing: upgraden. :)

Saved by the buoyancy of citrus


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

Jammer dat ze het nog steeds niet helemaal hebben opgelost
PHP:
1
2
3
4
5
6
function foo()
{
    return array(1, 2, 3);
}

echo foo()[0];  // parse error, unexpected '[', expecting ',' or ';'

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • Cyphax
  • Registratie: November 2000
  • Laatst online: 19:48

Cyphax

Moderator LNX
.oisyn schreef op donderdag 15 juni 2006 @ 15:41:
Jammer dat ze het nog steeds niet helemaal hebben opgelost
PHP:
1
2
3
4
5
6
function foo()
{
    return array(1, 2, 3);
}

echo foo()[0];  // parse error, unexpected '[', expecting ',' or ';'
Dat hadden ze van mij ook mogen doen inderdaad, daar heb ik me ook al een paar keer aan zitten ergeren. Gelukkig is het met een regel code extra ook opgelost, maar toch, op dit punt is de implementatie van die returnvalues niet zo consistent als je zou willen...

[ Voor 13% gewijzigd door Cyphax op 15-06-2006 16:02 ]

Saved by the buoyancy of citrus


Acties:
  • 0 Henk 'm!

  • Icelus
  • Registratie: Januari 2004
  • Niet online
Da's jammer... Had al diverse combinaties van haakjes en accolades geprobeerd ;)
Heb helaas niet de mogelijkheid om PHP5 te gebruiken; dan maar via een tweede variabele.

Developer Accused Of Unreadable Code Refuses To Comment


Acties:
  • 0 Henk 'm!

  • Javache
  • Registratie: Mei 2006
  • Laatst online: 13-02-2010
Je kan misschien list() gebruiken. http://be2.php.net/manual/nl/function.list.php

Acties:
  • 0 Henk 'm!

  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

.oisyn schreef op donderdag 15 juni 2006 @ 15:41:
Jammer dat ze het nog steeds niet helemaal hebben opgelost
PHP:
1
2
3
4
5
6
function foo()
{
    return array(1, 2, 3);
}

echo foo()[0];  // parse error, unexpected '[', expecting ',' or ';'
PHP:
1
2
$result = mysql_query("...query... LIMIT 1");
mysql_fetch_array($result)[0]; //geeft ook die fout

Dat mis ik toch vaak!

Going for adventure, lots of sun and a convertible! | GMT-8


Acties:
  • 0 Henk 'm!

  • Grum
  • Registratie: Juni 2001
  • Niet online
snake903 schreef op donderdag 15 juni 2006 @ 20:56:
PHP:
1
2
$result = mysql_query("...query... LIMIT 1");
mysql_fetch_array($result)[0]; //geeft ook die fout

Dat mis ik toch vaak!
Het zou php niet zijn als het geen losse functies had hiervoor:

mysql_result( $result, 0, 0 );

Acties:
  • 0 Henk 'm!

  • GX
  • Registratie: Augustus 2000
  • Laatst online: 14-05 09:40

GX

Nee.

Grum schreef op donderdag 15 juni 2006 @ 23:35:
[...]


Het zou php niet zijn als het geen losse functies had hiervoor:

mysql_result( $result, 0, 0 );
Dat heet een MySQL API. De functies in php zijn enkel "linkjes" naar de echte functies.
Pagina: 1