Hallo,

Een klasse geeft een array als return:


class Blaat
{
    function getArray()
    {
        $this->aArray = array( 1, 2, 3, 4 );
        return $this->aArray;
    }
}


Als ik nu de functie getArray() oproep, kan ik de array dan direct aanspreken, of moet ik deze eerst toekennen aan een variabele?

voorbeeld:


$cVar = new Blaat();

echo $cVar->getArray()[0];


OF


$cVar = new Blaat();

$ar = $cVar->getArray();
echo $ar[0];


Groetjes Michele
Probeer het eens :) Dan merk je het vanzelf.. Ik ga natuurlijk niet verklappen wat je zelf ook kan proberen :)
Michele, volgens mij heb je al eens geprogrammeerd in Java of iets soortgelijks, daar kun je beide mogelijkheden doen.

In PHP kun je alleen de laatste mogelijkheid uitvoeren. Misschien is dat ook maar beter ook omdat dat je dan wel snel het overzicht gaat verliezen, denk ik.
met andere woorden, je weet het ook niet ;)
Ja oke, het werkt niet, maar ik bedoelde eigenlijk of er wel een manier is om die rechtstreeks uit te werken...

Maar dat kan je er natuurlijk niet uit opmaken...

Dus: is er een manier om een return array van een functie rechtstreeks aan te spreken of moet je deze eerst toekennen aan een var?
<?
list($var) = $cVar->getArray();
echo $var;
?>

Meer kan ik er niet van maken ;P
oke bedankt!
Je zou natuurlijk zoiets kunnen doen, maar 't lijkt me wat omslachtig. Een andere methode bestaat volgens mij ook niet...tenzij je je array public beschikbaar zou maken buiten je class, maar dan schop je het OOP-principe weer een beetje omver :)

<?php
class Blaat
{
function getArray( $iKey )
{
$this->aArray = array( 1, 2, 3, 4 );
if( key_exists( $iKey, $this->aArray ) )
{
return $this->aArray[ $iKey ];
}
else
{
trigger_error( 'Key bestaat niet', E_USER_ERROR );
}
}
}

$cVar = new Blaat();

// Haal plaats 0 van je array op
echo $cVar->getArray( 0 );

?>
Bedankt voor je input Remco!

Reageren