Arrayzugriff ohne Variable

mille

Erfahrenes Mitglied
Hallo!

Ich hab eine Klasse, welche mir ein Array zurückgibt, sei dies nun zur übersicht wie folgt gekennzeichnet

$klasse->methode()

methode() liefert ein Array zurück, welches u.a. das Feld "str_name" hat.
"str_name" sei hier Pornex

Mache ich nun
PHP:
$bla = $klasse->methode();
echo $bla['str_name']; // gibt "Pornex" aus
kann ich so auf den Index zugreifen.


Wie greife ich aber auf den Index zu, wenn cih Variable $bla nicht verwenden will?

PHP:
echo "Der Text davor " . $klasse->methode() . " und der danach"; // gibt "Der Text davor Array und der danach" aus.
echo ($klasse->methode())['str_name']; // Syntaxfehler

wie mache ich es nun, das "Der Text davor Pornex und der danach" ausgegeben wird, ohne eine weitere Variable zum zwischenspeichern zu benutzen?
 
indem du statt eines Arrays ein einzelnes Feld zurückgibst?

Mit $klasse->method()['bla'] wirst du immer nur einen Fehler generieren.

Nimm doch einen zusätzlichen Parameter mit an Bord.
Also : $klasse->method('str_name').

Dann prüfst du in deiner Methode einfach den Parameter
und gibst diesen Index des Arrays anstelle des gesamten Arrays zurück.
 
Ich will Nils Idee mal aufnehmen und daraus folgendes machen:
PHP:
function method($index=null) {
    if ($index==null) {
        //wenn kein Array-Index übergeben wird,
        //wird das array zurückgegeben
        //Methodenaufruf: $klasse->method();
        return $this->arr;
    } else if (isset($this->arr[$index])) {
        //wenn ein Array-Index übergeben wird
        //und dieser existiert, wird das array-element 
        //mit diesem Index zurückgegeben
        //Methodenaufruf: $klasse->method('DeinIndex');
        return $this->arr[$index];
    } else {
        //wenn ein Array-Index übergeben wird
        //und dieser nicht existiert, wird 
        //null zurückgegeben
        //Methodenaufruf: 
        //$klasse->method('DeinNichtVorhandenerIndex');
        return null;
    }
}
 
Zurück