Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Problem bei Verwendung einer Funktion die ein Array zurückgibt [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Problem bei Verwendung einer Funktion die ein Array zurückgibt


 
pascaluhlmann
06-06-2007, 16:41 
 
Hallo!

Ich habe innerhalt der Klasse SQL eine Funktion getEvents, die ein Array zurückgibt. Nun möchte ich mit folgendem Aufruf den ersten Wert ausgeben:$variable = $SQL->getEvents(13)[0]['event'];
Hierbei bekomme ich jedoch die Fehlermeldung "Parse error: parse error, unexpected '[' in ...".

Kann mir jemand sagen, warum dies so nicht funktioniert bzw. wie ich es stattdessen lösen kann, ohne das komplette Array vorher in eine extra Variable zu speichern?


MfG
Pascal

 
wahsaga
06-06-2007, 16:53 
 
Original geschrieben von pascaluhlmann
Kann mir jemand sagen, warum dies so nicht funktioniert
Weil PHP diese Syntax, die in objektorientierten Sprachen gang und gäbe ist, nicht unterstützt.
bzw. wie ich es stattdessen lösen kann, ohne das komplette Array vorher in eine extra Variable zu speichern?
M.W. gar nicht.

(Natürlich brauchst du nicht "das komplette Array in eine extra Variable" speichern, das klingt so nach Kopieren und viel Speicherverbrauch und so ... das muss ja nicht der Fall sein. Zum einen könntest du eine Referenzvariable benutzen, und zum anderen nutzt auch PHP 'copy-on-write'.)

 
pascaluhlmann
06-06-2007, 16:55 
 
Wie meinst du das genau mit der "Referenzvariable"?

 
wahsaga
06-06-2007, 16:59 
 
http://www.php.net/manual/de/language.references.php


Du musst aber keine benutzen, wenn du lediglich Angst hast, "ohne", also durch den Zwischenschritt des Zuweisens des Returnwertes an eine temporäre, ggf. auch lokale, Variable würde sich der Speicherbedarf verdoppeln - das ist wie gesagt nicht automatisch der Fall.

 
pascaluhlmann
06-06-2007, 17:17 
 
OK, danke für die Hilfe!

 
prego
06-06-2007, 17:50 
 
$variable = $SQL->getEvents(13);
$variable = $variable[0]['event'];

?


Alle Zeitangaben in WEZ +2. Es ist jetzt 21:42 Uhr.