[php] werken met -> ipv ['']

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb een paar vraagjes, ik ben er reeds achter gekomen dat je niet kan verwijzen naar nummers $str->1, etc maar weet iemand hoe het mogelijk is als ik $str->test1, $str->test2 heb om dan in een for loopje test 1 t/m 100 uit te lezen?

Tnx

Acties:
  • 0 Henk 'm!

  • sjroorda
  • Registratie: December 2001
  • Laatst online: 13:04
maak van het attribuut een variabele:

PHP:
1
2
for ($i = 1; $i < 101; $i++)
    $var = $str->'test'.$i


En zo kan je natuurlijk dan ook met getallen omgaan:
PHP:
1
2
for ($i = 1; $i < 101; $i++)
    $var = $str->$i

levert (denk ik, niet getest en lijkt me ook geen reeel scenario gezien het feit dat er ook nog zoiets als arrays bestaan ;)) iets op als $str->1, $str->2, enz.

[ Voor 65% gewijzigd door sjroorda op 15-01-2003 12:59 ]


Acties:
  • 0 Henk 'm!

  • johnny7
  • Registratie: November 2000
  • Laatst online: 07-11-2023
Misschien een stomme vraag, maar waarom gebruik je geen array test met als grootte 100 :?

Acties:
  • 0 Henk 'm!

Verwijderd

Waarom heeft je object meerdere properties die hetzelfde voorstellen?
Geef dat object gewoon een array als property:

$object->array [ 0 ]

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 16-09 09:15

Janoz

Moderator Devschuur®

!litemod

Hier zijn eigenlijk al een miljoen topics over geweest. Resultaat is altijd dat TS graag ranzige variabele variabelen wil, maar dat het probleem altijd heel netjes met arrays op te lossen is...

Als je toch perse met objecten wilt werken, waarom sla je je array dan niet op in je object? $str->test[1] kan toch ook??

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
gaat niet werken, ik heb de $str->test1 etc al gedefenieerd en wil ze uitlezen.

Acties:
  • 0 Henk 'm!

  • sjroorda
  • Registratie: December 2001
  • Laatst online: 13:04
Dan wordt het tijd dat je je vars beter definieert; is het nooit te laat voor :)

[ Voor 3% gewijzigd door sjroorda op 15-01-2003 13:02 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Verwijderd schreef op 15 januari 2003 @ 13:01:
gaat niet werken, ik heb de $str->test1 etc al gedefenieerd en wil ze uitlezen.

Modificeer die class dan, want dit is gewoon een slechte programmeer-oplossing.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
owkee ik ga het anders oplossen :)

Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Verwijderd schreef op 15 januari 2003 @ 12:56:
Ik heb een paar vraagjes, ik ben er reeds achter gekomen dat je niet kan verwijzen naar nummers $str->1, etc maar weet iemand hoe het mogelijk is als ik $str->test1, $str->test2 heb om dan in een for loopje test 1 t/m 100 uit te lezen?

Tnx

En dat is ook extreem logisch...
Als je de moeite had genomen de php-manual bij het "hoe mogen variabelen heten" deel (zoek zelf even op, zit in het begin ervan) had gelezen.

Een var mag niet met een getal beginnen en al helemaal geen getal zijn...

En verder, gebruik voor object/variabele reeksen gewoon array's of vectors (kent php niet) die zijn daarvoor.

[ Voor 9% gewijzigd door ACM op 15-01-2003 13:09 ]


Acties:
  • 0 Henk 'm!

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 07-11-2023

kvdveer

Z.O.Z.

ACM schreef op 15 januari 2003 @ 13:08:

[...]

En dat is ook extreem logisch...
Als je de moeite had genomen de php-manual bij het "hoe mogen variabelen heten" deel (zoek zelf even op, zit in het begin ervan) had gelezen.

Een var mag niet met een getal beginnen en al helemaal geen getal zijn...

En verder, gebruik voor object/variabele reeksen gewoon array's of vectors (kent php niet) die zijn daarvoor.
Heel stiekum kan het toch, zelfs spaties zijn mogelijk... (en nee, ik zeg niet hoe)

Localhost, sweet localhost


Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

kvdveer schreef op 15 januari 2003 @ 13:20:
Heel stiekum kan het toch, zelfs spaties zijn mogelijk... (en nee, ik zeg niet hoe)

Vast wel met variabele variabelen, maar het zou niet mogen. Het is, imho, zelfs vies/een bug dat je stiekem toch om de naamgeving-vereisten heen kan werken, er is geen enkele reden toe dat te doen 8)7

Acties:
  • 0 Henk 'm!

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 07-11-2023

kvdveer

Z.O.Z.

ACM schreef op 15 januari 2003 @ 13:50:

[...]

Vast wel met variabele variabelen, maar het zou niet mogen. Het is, imho, zelfs vies/een bug dat je stiekem toch om de naamgeving-vereisten heen kan werken, er is geen enkele reden toe dat te doen 8)7
Je gok is erg close... Je kunt een variabelenaam escapen door 'm tussen accolades te zetten ($ moet er dan voor). ${1} is dus een geldige variabelenaam. Spaties kunnen dan nog niet, daarvoor heb je variabele variabelen nodig ("pointers" dus) :+.
Mensen die dit soort constructies gebruiken dienen echter standrechtelijk geexecuteerd te worden. De mensen die deze constructie hebben verzonnen dienen met een kaasschaaf teruggebracht te worden tot een formaat van 3 inch in het vierkant.

Localhost, sweet localhost


Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

"pointers" dus
hm, ja, nu je het zegt, zou je dat idd ook een pointer kunnen noemen... bah :r :D

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Acties:
  • 0 Henk 'm!

  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 17-09 07:55

thomaske

» » » » » »

kvdveer schreef op 15 januari 2003 @ 14:30:
Mensen die dit soort constructies gebruiken dienen echter standrechtelijk geexecuteerd te worden. De mensen die deze constructie hebben verzonnen dienen met een kaasschaaf teruggebracht te worden tot een formaat van 3 inch in het vierkant.
:D :D

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


Acties:
  • 0 Henk 'm!

  • eamelink
  • Registratie: Juni 2001
  • Niet online

eamelink

Droptikkels

De mensen die deze constructie hebben verzonnen dienen met een kaasschaaf teruggebracht te worden tot een formaat van 3 inch in het vierkant.
Evenals mensen die het gebruik van deze methoden in omloop proberen te brengen, door erover te praten op een drukbezocht forum. ;)

kvdveer->ReduceMetKaasschaaf('3', '3', '3', 'inch');

Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

whehehe :D :D

eigenlijk zouden we 't in de policy op moeten nemen van P&W.
Ranzige PHP methodes mogen niet over gepraat worden, tenzij ze afgekraakt worden.
:+

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
kvdveer schreef op 15 januari 2003 @ 13:20:
Heel stiekum kan het toch, zelfs spaties zijn mogelijk... (en nee, ik zeg niet hoe)
Inderdaad zo ongegrond is mijn vraag nu ook al weer nie hoor :+

ik heb bv een routine die perfect werkt

PHP:
1
2
3
4
5
6
7
8
            for ($x = 0; $x < $items; $x++)
            {
                $list = mysql_fetch_object($query);
                
                $poll->answer->$x->id = $list->id;
                $poll->answer->$x->answer = $list->answer;
                $poll->answer->$x->votes = $list->votes;
            }


en werkt dus echt pfect! :?

Acties:
  • 0 Henk 'm!

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 07-11-2023

kvdveer

Z.O.Z.

Verwijderd schreef op 15 January 2003 @ 17:19:
[...]


Inderdaad zo ongegrond is mijn vraag nu ook al weer nie hoor :+

ik heb bv een routine die perfect werkt

PHP:
1
2
3
4
5
6
7
8
            for ($x = 0; $x < $items; $x++)
            {
                $list = mysql_fetch_object($query);
                
                $poll->answer->$x->id = $list->id;
                $poll->answer->$x->answer = $list->answer;
                $poll->answer->$x->votes = $list->votes;
            }


en werkt dus echt pfect! :?
* kvdveer executeert xtentic vanwege die answer->$x

De juiste constructie is:
$poll->answer[$x]->id

Localhost, sweet localhost


Acties:
  • 0 Henk 'm!

  • sjroorda
  • Registratie: December 2001
  • Laatst online: 13:04
Waarom ' :? '? Dat is hierboven toch uitgelegd?

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 16-09 09:15

Janoz

Moderator Devschuur®

!litemod

eamelink schreef op 15 januari 2003 @ 17:14:
[...]

Evenals mensen die het gebruik van deze methoden in omloop proberen te brengen, door erover te praten op een drukbezocht forum. ;)

kvdveer->ReduceMetKaasschaaf('3', '3', '3', 'inch');


Net als het overbodig omzetten naar strings

eamelink->ReduceMetKaasschaaf(3,3,3,'inch');

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Janoz schreef op 15 januari 2003 @ 17:28:
Net als het overbodig omzetten naar strings

eamelink->ReduceMetKaasschaaf(3,3,3,'inch');

Oei... een methode naam die met een hoofdletter begint en dat bij een java-programmeur!! :P
En wat als je wilt weten hoeveel antwoorden er bestaan ?

Dit is trouwens nog netter, imho:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Antwoord
{
   var $id;
   var $answer;
   var $vote;

   function Antwoord($id, $anwer, $vote)
   {
        $this->id = $id;
        //etc
   }
}

while($row = mysql_fetch_array())
{
    $poll->antwoorden[] = new Antwoord($row['id'], ...);
}

[ Voor 24% gewijzigd door ACM op 15-01-2003 18:24 ]


Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

ACM:
En wat als je wilt weten hoeveel antwoorden er bestaan ?

Net zo lang proberen totdat het niks teruggeeft. Moet je natuurlijk wel het '@' teken gebruiken :X :X :X <!-- :+ -->

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Acties:
  • 0 Henk 'm!

Verwijderd

drm schreef op 15 January 2003 @ 18:23:

[...]

Net zo lang proberen totdat het niks teruggeeft. Moet je natuurlijk wel het '@' teken gebruiken :X :X :X
_/-\o_ U gaat door voor de meest ingenieuze oplossing voor onnodige problemen 2003 :+

Acties:
  • 0 Henk 'm!

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 07-11-2023

kvdveer

Z.O.Z.

code:
1
2
3
4
5
6
7
<?for(($_1 = " (+|&]$|&]%]%|\"! ]'|\"]/"
."]%|$! ]!],],]%! [![#[#['! !/[![$! ]'".
"]!|#|$]%].!!")+$_=0;$_<(3<<5);${1}.=chr
((2<<4)+$_++));$_^=$_;$¢="![()]|";for( ;
$¢{$_}!='';$_++)$»[$¢{$_}]=($_<<4)-(2<<4
); $_^=$_;while($_1{++$_}>" ")($Ö.=${1}[
$»[$_1{$_}]+ord($_1{++$_})]);echo $Ö;?>


Wat voor straf verdien ik nu?

edit:
Enhanced version

[ Voor 37% gewijzigd door kvdveer op 16-01-2003 00:07 ]

Localhost, sweet localhost


Acties:
  • 0 Henk 'm!

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 15-09 18:24

dusty

Celebrate Life!

kvdveer schreef op 16 januari 2003 @ 00:01:
Wat voor straf verdien ik nu?

security by obscurity is no security at all.

Vervang alle variabelen weer met een normale naam en je kunt de code gewoon weer makkelijker lezen.. :z

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

offtopic:
kvdveer, je zoekt urgently... wat is er tenslotte zo urgent aan de woonruimte zelf? ;) (nog afgezien van de vraag of je wel dringend kan zoeken, maar ala :P)
I'll keep a lookout, btw

[ Voor 24% gewijzigd door drm op 16-01-2003 00:18 ]

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Acties:
  • 0 Henk 'm!

  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 17-09 07:55

thomaske

» » » » » »

offtopic:
drm, dat zou zo zijn, als de zin in het engels was geweest... maar het is gewoon een nederlansche zin, en urgent is ook een nederlands woord (vanDale zegt: 'Dringend')
Wat betreft het feit of je dringend kan zoeken, sluit ik me bij je aan
:X :P

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


Acties:
  • 0 Henk 'm!

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 07-11-2023

kvdveer

Z.O.Z.

drm schreef op 16 januari 2003 @ 00:16:
offtopic:
kvdveer, je zoekt urgently... wat is er tenslotte zo urgent aan de woonruimte zelf? ;) (nog afgezien van de vraag of je wel dringend kan zoeken, maar ala :P)
I'll keep a lookout, btw
offtopic:
Zoals thomaske al aangeeft, het is geen engelse zin.
Inmiddels heb ik wat opties uitstaan. ;-) Zie verder [rml][ stoom afblazen] Ik ben dakloos... :'([/rml]

Horen (lite-)mods zich niet on-topic te houden?

Localhost, sweet localhost


Acties:
  • 0 Henk 'm!

  • Postman
  • Registratie: Februari 2000
  • Laatst online: 12-09 01:23
kvdveer schreef op 16 January 2003 @ 00:31:
[...]

offtopic:
Zoals thomaske al aangeeft, het is geen engelse zin.
Inmiddels heb ik wat opties uitstaan. ;-) Zie verder [rml][ stoom afblazen] Ik ben dakloos... :'([/rml]

Horen (lite-)mods zich niet on-topic te houden?
offtopic:
Waarom heb jij toegang tot crewfora?? Of is je topic getrashed??

vvv Vriendjes politiek :) Ik ken ook wel ex-mods, maar ik ben minder gelijk :'( vvv

[ Voor 13% gewijzigd door Postman op 16-01-2003 00:42 ]


Acties:
  • 0 Henk 'm!

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 07-11-2023

kvdveer

Z.O.Z.

FlamerX schreef op 16 January 2003 @ 00:36:
[...]

offtopic:
Waarom heb jij toegang tot crewfora?? Of is je topic getrashed??
offtopic:
Sja, alle GoT-ters zijn gelijk, maar sommige GoT-ters zijn gelijker dan anderen

Localhost, sweet localhost


Acties:
  • 0 Henk 'm!

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
En weer on-topic ajb!!
Pagina: 1