PHP direct element uit return array function kiezen

Stel ik maak een functie die een array retourneert:

function doeiets($x)
{
....
return(array("a" => $a,"b" => $b,"c" => $c,"d" => $d));
}

Hoe kan ik dan direct 1 veld benutten in zeg een echo?
Kan ik dit schrijven?

echo (doeiets($x)[a]);

Of loop ik nu een class te simuleren? OO heb ik totaal geen kaas van gegeten.

Dit werkt wel:

<?php 
	/*
	echo '<pre>';
	print_r(doe_iets());
	echo '<pre>';
	*/
	$arrReturn = doe_iets();
	echo $arrReturn['a'];
	
	function doe_iets(){
		
		return array("a" =&gt; "a","b" =&gt; "b","c" =&gt; "c","d" =&gt; "d");
	
	}


?&gt;

Volgens mij — maar ik ben geen PHP-expert — kan het alleen op de manier die Fred laat zien. Je kunt voor zover ik weet niet met returnwaardes omgaan alsof het variabelen zijn.

Volgens mij, Voor zover ik weet.

Aannames, veronderstellingen, gissen.

Laat het maar over aan de experts.

Gisteren effe nagetiept. 1 minuut werk.

function doeiets($dit)
{

$a = $dit . 'meubilair';

return(array("a" =&gt; $a,"b" =&gt; $b,"c" =&gt; $c,"d" =&gt; $d));
}

$x ="kantoor";

echo (doeiets($x)[a]);

Damn, gewoon een goede natte vinger!
Had het eerder geprobeerd, maar wellicht net anders, want toen lukte het niet.

Maar heel even terug naar de OO vraag:
Mijn idee is een aantal functies voor een prijs in een webshop te combineren tot een overzichtelijke.
Dus een variabele bevat de rekenprijs voor de basket, de tweede een opgemaakte met valutasymbool en juiste afronding, een derde i.p.v. koopprijs een huurprijs etc. Is dat iets waar je beter een object van maakt?

Beste Wyodor,

Jouw code werkt niet!
Als je ‘a’ als string tussen vierkante haakjes gebruikt, moet je dat op z’n minst tussen quotes zetten.
Niet zo expert dus?

En mijn persoonlijke mening: echt leesbaar is die code niet als je alles op die manier in één regel propt.

Wat de vraag van Computer Space betreft: ik heb de indruk dat je het concept van objecten niet echt goed begrijpt. Als dat zo is, lees dan deze tutorial eens even door: http://code.tutsplus.com/tutorials/object-oriented-php-for-beginners--net-12762

Ik vind die zeer goed geschreven en het geeft meteen weer wat je met objecten kan. Misschien geeft dat een goed antwoord op je vraag.

Beste fredmatrack,

Zojuist getest, Wyodors code werkt wel.
Misschien netter om die ‘a’ te quoten, maar blijkbaar niet noodzakelijk.

[quote=fredmatrack url=http://www.onemorething.nl/community/topic/php-direct-element-uit-return-array-function-kiezen/#post-2675238 time=1397331005]Wat de vraag van Computer Space betreft: ik heb de indruk dat je het concept van objecten niet echt goed begrijpt. Als dat zo is, lees dan deze tutorial eens even door: http://code.tutsplus.com/tutorials/object-oriented-php-for-beginners--net-12762
[/quote]

Weer zo’n tutorial waar geen touw aan vast te knopen is. Waarom toch steeds weer de theoretische benadering. Maak het nu eens gewoon praktisch met iets waar een class in praktijk ook echt nuttig is. Die bouwtekening/huis metafoor slaat ook nergens op. Een goede tekening is namelijk identiek aan de gebouwde werkelijkheid.

Maar volgens mij is wat ik wil wel een uitgelezen iets voor een class, maar ik vraag me af of het nabootsen van een class met een functie met als uitkomst een array heel erg anders is. Enige nadeel wellicht is dat in mijn aanpak alles doorgerekend wordt, ook al heb je maar een stukje nodig. Voordeel is wellicht dat de geheugenallocatie efficiënter is.

Als je deze tutorial (die wat mij betreft een van de betere is om de basis van OO te begrijpen), denk ik dat je je toch wat meer moet verdiepen in OO alvorens het proberen te gebruiken. OO programmeren vereist ook echt dat je begrijpt hoet het werkt. Je kan niet op basis van een eenvoudig voorbeeld goede OO code schrijven: de analyse wordt namelijk veel belangrijker omdat je daar gaat bepalen welke classes je gaat gebruiken en welke methoden en eigenschappen die hebben. Zonder die analyse ga je vaak opnieuw moeten beginnen.

Wat de oorspronkelijke vraag betreft: de code van Wyodor werkt inderdaad maar pas vanaf PHP versie 5.4. In vorige versies werkt het nog niet. Als je code dus compatibel moet zijn met oudere versies, gebruik je best mijn voorgestelde code.

En de key sowieso tussen quotes zetten, anders ga je uit van constanten. Lees dit topic maar even door:
http://stackoverflow.com/questions/2405482/is-it-okay-to-use-arraykey-in-php

[quote=Wyodor url=http://www.onemorething.nl/community/topic/php-direct-element-uit-return-array-function-kiezen/#post-2675141 time=1397300153]Volgens mij, Voor zover ik weet.

Aannames, veronderstellingen, gissen.[/quote]Excuseert u mij dat ik toegeef dat ik iets misschien niet weet, in plaats van dat ik verkondig de ultieme oplossing te hebben …

[quote=fredmatrack url=http://www.onemorething.nl/community/topic/php-direct-element-uit-return-array-function-kiezen/#post-2675518 time=1397418199]Wat de oorspronkelijke vraag betreft: de code van Wyodor werkt inderdaad maar pas vanaf PHP versie 5.4. In vorige versies werkt het nog niet.[/quote]Zíé je wel … er stond me namelijk iets bij dat ik het ooit geprobeerd had, maar dat het niet werkte. Met de versie van PHP die bij Mavericks zit werkt het inderdaad wel.