[php] Kent iemand deze constructie: $var{0}

Ik kwam op internet deze constructie tegen:

[code:1:e3f9d7629d]if ($var{0} == ‘a’) echo ‘true’; else echo ‘false’;[/code:1:e3f9d7629d]

Dus als de eerste letter van $var ‘a’ is, echo dan true en anders false. Ik kende die constructie met accolades aan een variabele nog niet en wil graag kijken of er nog meer mogelijkheden zijn hiermee. Weet iemand waar ik documentatie kan vinden hier over?

Hmm, deze ken ik echt niet. Gekke method lijkt het mij. Ik zou de 1e letter van een variable zo checken:

[code:1:284329b9cc]
if(substr($var[‘tabel’], 0, 1) == “a”) { echo “true”; } else { echo “false”; }
[/code:1:284329b9cc]

Maargoed volgens mij was dit niet jou vraag :roll: :smiley:

Ik heb [url=http://www.php.net/manual/nl/language.variables.variable.php]hier[/url] iets gevonden wat antwoord kan geven op jouw vraag. Ik heb hetzelf nog niet bestudeerd (ik moet weer aan het werk!).

[quote:43e52ef4f4="MegaChriz"]Ik heb [url=http://www.php.net/manual/nl/language.variables.variable.php]hier[/url] iets gevonden wat antwoord kan geven op jouw vraag. Ik heb hetzelf nog niet bestudeerd (ik moet weer aan het werk!).[/quote:43e52ef4f4]

Daar wordt inderdaad die accolade gebruikt in combinatie met een variabele, maar het gaat dan om variabelen die je een naam kunt geven aan de hand van de inhoud van een andere variabele. Helaas staat er niks bij over een cijfer tussen de accolades.

[quote:43be3ff079="Kyokushinkai"]Ik kwam op internet deze constructie tegen:

[code:1:43be3ff079]if ($var{0} == ‘a’) echo ‘true’; else echo ‘false’;[/code:1:43be3ff079]

Dus als de eerste letter van $var ‘a’ is, echo dan true en anders false. Ik kende die constructie met accolades aan een variabele nog niet en wil graag kijken of er nog meer mogelijkheden zijn hiermee. Weet iemand waar ik documentatie kan vinden hier over?[/quote:43be3ff079]

De link van MegaChriz zegt genoeg. Aparte manier en ik snap niet hoe je het toe kan passen mar goed.

je kan jou if/else ook nog korter noteren :wink:

[code:1:43be3ff079]echo ($var{0} == ‘a’ ? ‘true’ : ‘false’);[/code:1:43be3ff079]

[quote:9c1c69b607="danielpunt"][quote:9c1c69b607="Kyokushinkai"]Ik kwam op internet deze constructie tegen:

[code:1:9c1c69b607]if ($var{0} == ‘a’) echo ‘true’; else echo ‘false’;[/code:1:9c1c69b607]

Dus als de eerste letter van $var ‘a’ is, echo dan true en anders false. Ik kende die constructie met accolades aan een variabele nog niet en wil graag kijken of er nog meer mogelijkheden zijn hiermee. Weet iemand waar ik documentatie kan vinden hier over?[/quote:9c1c69b607]

De link van MegaChriz zegt genoeg. Aparte manier en ik snap niet hoe je het toe kan passen mar goed.

je kan jou if/else ook nog korter noteren :wink:

[code:1:9c1c69b607]echo ($var{0} == ‘a’ ? ‘true’ : ‘false’);[/code:1:9c1c69b607][/quote:9c1c69b607]

Inderdaad, die constructie heb ik ook nog ergens in een php bestandje staan. Wat ik mij bijvoorbeeld nog af vraag is of je in plaats van die 0 tussen de accolades ook kunt zeggen bijvoorbeeld $var{0-5} (werkt niet) zodat je de eerste 6 karakters uit een string kunt gaan vergelijken. Daarover wordt niets gezegd in die link van MegaChriz, maar ik ben er toch wel benieuwd naar.

$var{3} is de 3de of 4de (ik weet niet meer of hij bij 0 of bij 1 start) char van een string, -1 of 1-5 etc werkt niet, ik gebruik dit soms als ik bijv maar 1 bepaalde letter/nummer zoek in een string, kan handig zijn hoef je bijv geen substr($var, 0,1) te doen ;)

Weet niet welke versies van PHP dit kunnen, maar in iedergeval vanaf 4.x.x

@ danielpunt, inderdaad je kan hier ook functies bij gebruiken die true of false etc terug geven :slight_smile:

Begint bij 0 normaal gesproken...

In Ruby in ieder geval wel, dus zal ook wel zo zijn in PHP

[quote:29f007013d="DarkRaverNL"]ik gebruik dit soms als ik bijv maar 1 bepaalde letter/nummer zoek in een string, kan handig zijn hoef je bijv geen substr($var, 0,1) te doen ;)[/quote:29f007013d]

Precies, maar is dat alles wat je er mee kunt of zijn er nog meer handige opties?

nou ja je kan bijv ook bepaalde letters/nummers uit een string halen en die achter elkaar zetten, ik heb het verder nog niet egt gebruikt :)

Dat is alles wat je er mee kunt. En het begint inderdaad bij 0. :)

Zie ook substr op php.net.