short IF
Code (php)
1
2
3
2
3
<?php
$mother = (isset($row['mother'])) ? '<tr><td>Mother:</td><td>'.$row['mother'].'</td></tr>' : '' ;
?>
$mother = (isset($row['mother'])) ? '<tr><td>Mother:</td><td>'.$row['mother'].'</td></tr>' : '' ;
?>
Om antwoord te kunnen geven op je vraag, hebben we iets meer code nodig. Het stukje waar $row wordt gedefinieerd bijvoorbeeld.
Weet je zeker dat die niet is geset? Als k je code bekijk komt het uit een database en haal je de kolom op. De variabele is wel geset, maar dan niet gevuld. Gebruik empty() in plaats van isset()
Jeps, dat zal het zijn, bedankt (A)
Toevoeging op 05/10/2010 14:28:29:
Ook hierin gaat iets dan niet goed:
Code (php)
1
2
3
4
2
3
4
<table>
'.((!empty($row['father'])) ? '<tr><td>Father:</td><td>'.$row['father'].'</td></tr>' : ''); '
'.((!empty($row['mother'])) ? '<tr><td>Mother:</td><td>'.$row['mother'].'</td></tr>' : ''); '
<tr>
'.((!empty($row['father'])) ? '<tr><td>Father:</td><td>'.$row['father'].'</td></tr>' : ''); '
'.((!empty($row['mother'])) ? '<tr><td>Mother:</td><td>'.$row['mother'].'</td></tr>' : ''); '
<tr>
Gewijzigd op 05/10/2010 14:28:53 door John Cena
Gewijzigd op 05/10/2010 15:31:30 door John Cena
Robert Deiman op 05/10/2010 14:22:06:
@Chi Lion
Weet je zeker dat die niet is geset? Als k je code bekijk komt het uit een database en haal je de kolom op. De variabele is wel geset, maar dan niet gevuld. Gebruik empty() in plaats van isset()
Weet je zeker dat die niet is geset? Als k je code bekijk komt het uit een database en haal je de kolom op. De variabele is wel geset, maar dan niet gevuld. Gebruik empty() in plaats van isset()
Fout! Gebruik geen empty(), dat is een zinloze functie. Controleer op correcte wijze je variabelen.
Noppes Homeland op 05/10/2010 17:20:40:
Fout! Gebruik geen empty(), dat is een zinloze functie. Controleer op correcte wijze je variabelen.
Robert Deiman op 05/10/2010 14:22:06:
@Chi Lion
Weet je zeker dat die niet is geset? Als k je code bekijk komt het uit een database en haal je de kolom op. De variabele is wel geset, maar dan niet gevuld. Gebruik empty() in plaats van isset()
Weet je zeker dat die niet is geset? Als k je code bekijk komt het uit een database en haal je de kolom op. De variabele is wel geset, maar dan niet gevuld. Gebruik empty() in plaats van isset()
Fout! Gebruik geen empty(), dat is een zinloze functie. Controleer op correcte wijze je variabelen.
In dit geval lijkt het mij best kunnen. De var is in dit geval altijd geset en je wilt weten of er iets in zit of niet.
Quote:
In dit geval lijkt het mij best kunnen. De var is in dit geval altijd geset en je wilt weten of er iets in zit of niet.
En het probleem is nu juist, dat je niet weet waar je mee te maken hebt. Je weet dus ook niet wat je gaat evalueren. Dus laat empty gewoon links liggen....
Gewijzigd op 05/10/2010 17:51:16 door Noppes Homeland
Noppes Homeland op 05/10/2010 17:50:27:
En het probleem is nu juist, dat je niet weet waar je mee te maken hebt. Je weet dus ook niet wat je gaat evalueren. Dus laat empty gewoon links liggen....
Quote:
In dit geval lijkt het mij best kunnen. De var is in dit geval altijd geset en je wilt weten of er iets in zit of niet.
En het probleem is nu juist, dat je niet weet waar je mee te maken hebt. Je weet dus ook niet wat je gaat evalueren. Dus laat empty gewoon links liggen....
Probeer jij nouw java in php te krijgen?
Weet je wel precies wat de empty functie doet? Volgens mij niet, het is een combinatie van Isset() en !is_null() (versimpeld weergegeven)
Je controleert niet alleen of de variabele wel bestaat, maar ook gelijk of die een waarde heeft.
Na de empty weet je 2 dingen:
- De variabele bestaat
- De variabele heeft een waarde.
Wat je daarna nog aan controles wil doen, is afhankelijk van wat je verwacht dat erin hoort te staan. Daar staat empty los van.
http://www.php.net/empty
Empty is niet de evaluatie voor `is leeg` - zoals de meesten, die hier op het forum huizen, denken -!!
Empty is ook niet bedoelt voor de evaluatie van `Bestaat` daar heb je isset voor!
Noppes Homeland op 05/10/2010 19:25:21:
Herr Deiman, ik denk dat je nogmaals goed het volgende moet doornemen:
http://www.php.net/empty
Empty is niet de evaluatie voor `is leeg` - zoals de meesten, die hier op het forum huizen, denken -!!
Empty is ook niet bedoelt voor de evaluatie van `Bestaat` daar heb je isset voor!
http://www.php.net/empty
Empty is niet de evaluatie voor `is leeg` - zoals de meesten, die hier op het forum huizen, denken -!!
Empty is ook niet bedoelt voor de evaluatie van `Bestaat` daar heb je isset voor!
Waar is empty dan voor volgens jou?
En jij probeert dus niet java in php te krijgen (type save te werken)?
Want wat als je nou wilt weten of een variabele niet (of juist wel) een lege string (""), een 0 integer, een string met nul erin ("0"), null, false, array() of var $var?
Je hebt dit veel vaker geroepen maar iedere keer geef je geen duidelijke uitleg.
empty is nergens goed voor
"Je hebt dit veel vaker geroepen maar iedere keer geef je geen duidelijke uitleg."
uitleg geven hoef ik niet, want elk weldenkend mens kan in feite lezen wat er op php.net geschreven staat en zelf de conclusie trekken dat empty een zinloze / niet bruikbar functie is.
Lees nu eens goed wat ik post. Je weet nooit maar dan ook nooit met wat en met welke waarde je iets door empty haalt, tenzij je van te voren al vastgesteld van wat je gaat evalueren, maar welk nut heeft het dan nog het door empty te halen, want dan weet je in feite al genoeg.
Ik heb vandaag meermaals de empty functie nodig gehad en wel in deze context: if(empty($array))
In dit geval is empty goed en correct bruikbaar. En ja je kan ook count gebruiken maar deze vind ik netter en is sneller.
Noppes Homeland op 05/10/2010 19:59:59:
"Waar is empty dan voor volgens jou?"
empty is nergens goed voor
"Je hebt dit veel vaker geroepen maar iedere keer geef je geen duidelijke uitleg."
uitleg geven hoef ik niet, want elk weldenkend mens kan in feite lezen wat er op php.net geschreven staat en zelf de conclusie trekken dat empty een zinloze / niet bruikbar functie is.
Lees nu eens goed wat ik post. Je weet nooit maar dan ook nooit met wat en met welke waarde je iets door empty haalt, tenzij je van te voren al vastgesteld van wat je gaat evalueren, maar welk nut heeft het dan nog het door empty te halen, want dan weet je in feite al genoeg.
empty is nergens goed voor
"Je hebt dit veel vaker geroepen maar iedere keer geef je geen duidelijke uitleg."
uitleg geven hoef ik niet, want elk weldenkend mens kan in feite lezen wat er op php.net geschreven staat en zelf de conclusie trekken dat empty een zinloze / niet bruikbar functie is.
Lees nu eens goed wat ik post. Je weet nooit maar dan ook nooit met wat en met welke waarde je iets door empty haalt, tenzij je van te voren al vastgesteld van wat je gaat evalueren, maar welk nut heeft het dan nog het door empty te halen, want dan weet je in feite al genoeg.
Het lijkt erop dat we een empty() basher hebben. :P
Nee, nu ff serieus: Je controleert hetzelfde als met ISSET(), maar: Er komt ook bij dat er ook wordt gekeken of de variabele niet alleen maar slechts is geset, maar ook of er een waarde aan toe is gekend die anders is dan:
- Een lege string
- Een string met daarin alleen het getal 0 ($var = '0';)
- Een integer met de waarde 0
- Een boolean met de waarde false
- Een array zonder waarden
- Een null waarde
- Een variabele waaraan geen waarde is geset
Als je de vraag van de ts hier goed leest, dan haalt hij een naam op uit de database:
- Een naam is per definitie niet gelijk aan 1 van bovenstaande afgevangen waarden: Prima dus om empty() te gebruiken. Daarnaast kan je heel leuk isset() doen, maar dan, daar heb je nog niets aan want: Het komt uit de database en is in elk geval geset. Een controle dus die helemaal geen **** toevoegt, eigenlijk dus helemaal niets doet. Waarvoor wil je dan toch erop hameren dat we die isset() moeten gebruiken? Snap je zelf wel waar het over gaat? Als je het er niet mee eens bent onderbouw je mening dan eens, want nu onderbouw je niets en roep je maar wat.
Hipska BE op 05/10/2010 20:08:22:
Noppes blijkbaar heb jij echt nog niet veel ervaring op php gebied.
Ik heb vandaag meermaals de empty functie nodig gehad en wel in deze context: if(empty($array))
In dit geval is empty goed en correct bruikbaar. En ja je kan ook count gebruiken maar deze vind ik netter en is sneller.
Ik heb vandaag meermaals de empty functie nodig gehad en wel in deze context: if(empty($array))
In dit geval is empty goed en correct bruikbaar. En ja je kan ook count gebruiken maar deze vind ik netter en is sneller.
Ook dat is een typisch voorbeeld van een nuttig gebruik van empty(); Je kan wel kijken of hij geset is, maar zonder waarden heb je nog weinig aan een $var = array(); er is geen informatie uit te halen.
Gewijzigd op 05/10/2010 20:25:11 door Robert Deiman
Het gebruik van empty leijd nu eenmaal tot bugs in de programatuur. Iemand die codeerd dient geen aannames te doen, zoals jij blijkbaar wel doet.
En ook jij dient beter te lezen wat ik post.
@Deiman: ook voor jouw geldt, dat je geen aannames moet doen!
Gewijzigd op 05/10/2010 20:28:37 door Noppes Homeland
Noppes Homeland op 05/10/2010 19:59:59:
"Waar is empty dan voor volgens jou?"
empty is nergens goed voor
empty is nergens goed voor
Ok.
Noppes Homeland op 05/10/2010 19:59:59:
"Je hebt dit veel vaker geroepen maar iedere keer geef je geen duidelijke uitleg."
uitleg geven hoef ik niet, want elk weldenkend mens kan in feite lezen wat er op php.net geschreven staat en zelf de conclusie trekken dat empty een zinloze / niet bruikbar functie is.
uitleg geven hoef ik niet, want elk weldenkend mens kan in feite lezen wat er op php.net geschreven staat en zelf de conclusie trekken dat empty een zinloze / niet bruikbar functie is.
Nee, niet iedereen hoeft dezelfde conclusie te trekken die jij trekt. En dat ligt niet aan de weldenkendheid van iemand.
Op php.net staat ook dat een variabele leeg wordt beschouwd als de variabel dus aan een van die bepaalde punten (zie php.net) voldoet. Dat staat er letterlijk.
Welke conclusie zou ik dan moeten trekken?
Verder vraag ik mij af of jij wel een vak communicatie op school hebt gehad, en of jij wel kan communiceren met je klanten. Jij gaat er namelijk vanuit dat wat jij vind, iedereen moet vinden en dat dat ook nog eens juist is.
Laat ik eens een vergelijking trekken:
Die jongen hierboven is Sean Lockhart, of wel pornoster Brent Corrigan.
Als ik naar die foto kijk, van vind ik, trek ik de conclusie dat Sean Lockhart een mooie jongen is. Maar ik gok, dat jij en waarschijnlijk ook wel andere mensen, of andere mensen, hem niet per se, of gewoon, een mooie jongen vind. Dat betekend dus dat jij een andere conclusie trekt.
Omdat ik op een bepaalde manier op een conclusie ben gekomen, namelijk op de manier hoe mijn hersenen denken is het dus ook beter dat je beargumenteerd waarom jou conclusie beter is. En niet alleen lopen roepen "
Er leuk hoor, blijkbaar heb jij een allergie voor empty, maar dat helpt mij dus niet. Ik kwam op empty uit, door php.net door te lezen. Dus als jij mij verwijst naar iets, waar ik iets heb gevonden, dan ga ik gewoon door met dat te gebruiken.
Of om bij het voorbeeld Sean Lockhart te blijven, ik denk dat ik hem mooi vind doordat ik homoseksueel ben, ik vind mannen / jongens mooi. Ik denk over mannen en niet over vrouwen. Zie, dat is een hele andere gedachte stroom, en een heel andere manier van denken dan een heteroseksueel. Maar jij hoeft hem dus ook nog niet mooi te vinden. Als ik zou willen dat jij hem ook mooi gaat vinden, dan zou ik moeten uitleggen wat ik mooi aan hem vind, en jij zal dat moeten accepteren. Maar je hoeft dat dus niet per se te doen. Jij kan er bij blijven dat je meiden veel mooier vind...
Noppes Homeland op 05/10/2010 19:59:59:
Lees nu eens goed wat ik post. Je weet nooit maar dan ook nooit met wat en met welke waarde je iets door empty haalt, tenzij je van te voren al vastgesteld van wat je gaat evalueren, maar welk nut heeft het dan nog het door empty te halen, want dan weet je in feite al genoeg.
Kijk, ik heb je nu al twee keer gevraagd, probeer jij java in php te krijgen. De eerste keer heb ik dat verduidelijk door aan te geven: 'Probeer jij type safe te werken?'. Alleen heb ik daar beide keren geen antwoord op gekregen, maar volgens mij bedoel je dit wel. Zou je zo vriendelijk willen zijn om dit punt te verduidelijken, eventueel zelfs met voorbeeld?
Noppes Homeland op 05/10/2010 20:26:17:
Hipska, ik denk dat jij het geschrevene maar moet terugtrekken. Ik loop al langer mee - bijna vanaf het begin - en draai elke dag programeurs de nek om als hij/zij/het de php functie empty gebruiken.
Ik rijd iedere dag fietsers en voetgangers aan, maar dat hoeft niet te betekenen dat ik zo goed kan fietsen of dat ik alle verkeersregels ken. En je kent vast ook wel docenten bij informatica, die vertellen vaak verkeerde dingen en keuren ook dingen af, omdat zij vinden dat het fout is, maar dus niet per se is.
Noppes Homeland op 05/10/2010 20:26:17:
Het gebruik van empty leijd nu eenmaal tot bugs in de programatuur. Iemand die codeerd dient geen aannames te doen, zoals jij blijkbaar wel doet.
Zou je een voorbeeld (met code) kunnen geven wat dan fouten geeft? Of doe jij nu de aanname dat het fout loopt?
Noppes Homeland op 05/10/2010 20:26:17:
@Deiman: ook voor jouw geldt, dat je geen aannames moet doen!
Pff, blaas toch niet zo hoog van de toren, je komt nu echt omhoog gevallen en over het paard getild over...
P.S. Download Opera die heeft een woordenboek ;-)
Edit:
Img tags verkeerd
denk aan het taalgebruik a.u.b.[/modedit]
Gewijzigd op 05/10/2010 21:30:07 door Bas IJzelendoorn
Heel programmeren bestaat uit het aannames doen dat je assembler jou code maar goed oppikt.
En ik weet nu zeker dat jij nooit een fout maakt in een code (dat gebeurt namelijk alleen als je aannames doet).
En welke aanname maken wij volgens jou met het gebruik van empty()?
Ik zou eerder zeggen dat je met isset() verkeerde aannames doet.
Ik maak namelijk heel vaak gebruik van variablen die null zijn.
Als ik isset gebruik, wil ik weten of die is aangemaakt, maar als hij is aangemaakt, en de waarde null heeft, dan heeft hij alsnog false terug.
Dus mensen,
Gebruik nooit ISSET!!!!!
XD
isset gebruiken dat de variabelen dan ook inhoud heeft. Maar de variabelen $blaat = ''; levert dus ook true op als die door isset wordt gehaald (terwijl die een lege string bevat).
Oh, nog een aanvulling op Nico Kaag. Mensen denken ook vaak dat wanneer ze Noppes Homeland op 05/10/2010 20:26:17:
Hipska, ik denk dat jij het geschrevene maar moet terugtrekken. Ik loop al langer mee - bijna vanaf het begin - en draai elke dag programeurs de nek om als hij/zij/het de php functie empty gebruiken.
Het gebruik van empty leijd nu eenmaal tot bugs in de programatuur. Iemand die codeerd dient geen aannames te doen, zoals jij blijkbaar wel doet.
En ook jij dient beter te lezen wat ik post.
@Deiman: ook voor jouw geldt, dat je geen aannames moet doen!
Het gebruik van empty leijd nu eenmaal tot bugs in de programatuur. Iemand die codeerd dient geen aannames te doen, zoals jij blijkbaar wel doet.
En ook jij dient beter te lezen wat ik post.
@Deiman: ook voor jouw geldt, dat je geen aannames moet doen!
Over het doen van aannames gesproken: Neem jij niet aan dat ik aannames doe? Wat neem ik dan volgens jou aan en waar gaat het mis. Graag wat onderbouwing, want met zulke "kort door de bocht" reacties kunnen we nogal weinig. (eigenlijk niets)
Ik vind dat het zo moet, maar je zoekt zelf maar uit waarom ik dat vind. Lekker voorbeeld voor de mensen die je de nek om draait (zoals je zelf noemt), iemand die denkt te weten hoe het hoort, geen argumenten heeft, maar ook absoluut niet luisteren wil naar de argumenten die een ander heeft.
En een aanvulling op Nico en Karl:
Code (php)
Nu kan je dit afvangen met andere functies, of niet. Er zijn situaties zat waarin je weet dat een variabele pas bruikbaar is wanneer die niet voldoet aan de empty functie. Dat is geen aanname, dat zijn bepalingen die je vantevoren weet. Waar moet mijn variabele aan voldoen, dat zijn bepalingen en geen aannames. Jij neemt aan dat bepalingen aannames zijn, (kan je het nog volgen?) en dat we ervan uitgaan dat de waarde 0 (bijvoorbeeld) nooit voorkomt.
Ik kan het je nog mooier vertellen, het is een bepaling dat je niet wil dat een bepaalde actie wordt uitgevoerd als een variabele voldoet aan één van de voorwaarden waarop empty() true terug geeft. Deze voorwaarden zijn een gegeven, en daar kan je rekening mee houden in je werk, of niet.
Even een aanname (ja, die doe ik ook wel eens) over jouw gewenste programmeerstijl:
- Jij gebruikt alleen isset() (geef je zelf aan, is een feit, de aanname moet nog beginnen)
- Naast de isset gebruik jij altijd een aantal verschillende controle functies, om na te gaan of de variabele helemaal en 100% aan jou verwachtingen voldoet.
- Deze controle functies heb je zelf samengesteld om bepaalde fouten te voorkomen en je verwacht ook dat iedereen op jou manier werkt.
- Je roept dat je vanaf het begin mee gaat, wil dat zeggen dat je het beter weet dan mensen die minder lang meelopen, maar misschien wel 10 keer sneller en beter werken/ redeneren/ leren en logischer na kunnen denken dan jij?
- Je roept dat we geen aannames mogen doen-> Waar jij de fout al ingaat, want je neemt aan (is een aanname!) dat wij aannames doen. Het gaat hier fout in je denkpatroon, omdat we gewoon duidelijke afspraken en redeneringen hebben waardoor bepaalde zaken wel en of niet kunnen.
Simpel voorbeeld:
We hebben een tekstveldje waarin een waarde moet. Dit staat vrij in te vullen, maar het moet wel een echte waarde bevatten waar we wat mee kunnen. -> 0, willen we niet zien, false, willen we niet, null, willen we niet, geen waarde willen we niet.
Jij zou:
- controleren of die bestaat, controleren of het gelijk is (===) aan 0, false, null of wat dan ook. Allemaal losse controles. Empty() is alles in 1, waarom dan niet gebruiken. Als je mij en iedereen die erom vraagt nu eens met een redenatie kan uitleggen waarom empty() in álle situaties (dit insinueer jij namelijk met je reactie(s)) niet goed is om te gebruiken, dan kunnen we er misschien wat van accepteren. Nu is het alleen maar, "niet gebruiken en ik weet het beter want (schijnbaar) ik ben ouder dan jullie, en werk langer met de taal". (waarvan ik ten opzichte van een aantal mensen hier wel heeel sterk mijn twijfels heb.
Ten slotte: Ik wil je iig niet als manager hebben, en ik kan me zo indenken de mensen die jij denkt de les te lezen ook niet. Een fatsoenlijke discussie vanuit redeneringen en bepaalde denkpatronen zal je met jou niet kunnen maken, zo lijkt het. Het is zo omdat jij het vind, niet omdat er een redenatie achter zit, niet omdat je een goede onderbouwing hebt, maar omdat jij het wilt. Gefeliciteerd, je hebt zojuist mijn langste post in een jaar uitgelokt, waarin ik eigenlijk geen uitleg geef over de taal of iemand probeer te helpen. (niet dat je daar trots op moet zijn overigens)
Gewijzigd op 05/10/2010 22:19:36 door Robert Deiman