| 1 2 3 4 5 6 7 8 9 10 11 | <?php if ( key_exists( "not", $_GET ) ) { echo "test1"; if ( !is_null( $_GET[ "not" ] ) || !empty($_GET["not"]) ) { echo "test2"; } } ?> |
| 1 | search.php?match=d_ |
| 1 | search.php?match=d_¬= |
Wat probeer je te bereiken?quote:Op donderdag 26 september 2013 21:58 schreef d4v1d het volgende:
Ik ben nu al zeker een jaar met php bezig, en ik zou zeggen dat ik het redelijk goed beheers maar nu loop ik tegen iets simpels aan wat ik gewoon niet begrijp![]()
search.php
[ code verwijderd ]
Met
[ code verwijderd ]
komt die nergens, tot zover snap ik het nog, echter met
[ code verwijderd ]
komt die tot test2.. Hij zou toch enkel tot test1 moeten komen dan?
Wat zie ik over het hoofd?
Edit: Geen idee hoe ¬ opeens in de uri staat, dat moet een ampersand zijn.., in het invoerveld hier staat die gewoon als ampersand..
Ik neem aan dat je array_key_exists() bedoelt en niet key_exists?quote:Op donderdag 26 september 2013 21:58 schreef d4v1d het volgende:
Ik ben nu al zeker een jaar met php bezig, en ik zou zeggen dat ik het redelijk goed beheers maar nu loop ik tegen iets simpels aan wat ik gewoon niet begrijp![]()
search.php
[ code verwijderd ]
Met
[ code verwijderd ]
komt die nergens, tot zover snap ik het nog, echter met
[ code verwijderd ]
komt die tot test2.. Hij zou toch enkel tot test1 moeten komen dan?
Wat zie ik over het hoofd?
Edit: Geen idee hoe ¬ opeens in de uri staat, dat moet een ampersand zijn.., in het invoerveld hier staat die gewoon als ampersand..
key_exists is een alias, dus zou niet uit moeten maken.quote:Op donderdag 26 september 2013 22:16 schreef totalvamp het volgende:
[..]
Ik neem aan dat je array_key_exists() bedoelt en niet key_exists?
als je iets uit een invoerveld in de URL wilt zul je urlencode moeten gebruiken.
Al gevonden, Het moestquote:Op donderdag 26 september 2013 22:15 schreef Crutch het volgende:
[..]
Wat probeer je te bereiken?
Misschien de hele search snippet even posten?
| 1 2 3 | <?php if ( !(is_null( $_GET[ "not" ] ) || empty($_GET["not"])) ) ?> |
empty() controleert ook op null-waardes. Als een variabele null is, is deze ook empty. Die extra null-check is dus niet nodig.quote:Op donderdag 26 september 2013 22:18 schreef d4v1d het volgende:
Al gevonden, Het moest
[ code verwijderd ]
zijn. (Dus met de haakjes om beide)
Opgelost dus.
Wat is er maf aan?quote:Op donderdag 26 september 2013 22:21 schreef KomtTijd... het volgende:
...ik mag aannemen dat je zo'n maffe if niet in je productiecode zet?
Ah, thx.quote:Op donderdag 26 september 2013 22:21 schreef Light het volgende:
[..]
empty() controleert ook op null-waardes. Als een variabele null is, is deze ook empty. Die extra null-check is dus niet nodig.
Wat is er gek aan? (even los van het commentaar van Light).quote:Op donderdag 26 september 2013 22:21 schreef KomtTijd... het volgende:
...ik mag aannemen dat je zo'n maffe if niet in je productiecode zet?
normaal heb je in een framework functies die de requests afvangen en controleren op foutieve data.quote:Op donderdag 26 september 2013 22:23 schreef slacker_nl het volgende:
[..]
Wat is er gek aan? (even los van het commentaar van Light).
Nouja dat, plus het lijkt meer een soort van puzzelopdracht om de haakjes en dubbele negaties te ontcijferen.quote:Op donderdag 26 september 2013 22:23 schreef slacker_nl het volgende:
[..]
Wat is er gek aan? (even los van het commentaar van Light).
Ik gebruik geen framework.quote:Op donderdag 26 september 2013 22:24 schreef totalvamp het volgende:
[..]
normaal heb je in een framework functies die de requests afvangen en controleren op foutieve data.
Hoe bekijk jij dan of iets van je $_GET is zoals je het wil? (In dit geval niet leeg of niet opgegeven..)quote:Op donderdag 26 september 2013 22:25 schreef KomtTijd... het volgende:
[..]
Nouja dat, plus het lijkt meer een soort van puzzelopdracht om de haakjes en dubbele negaties te ontcijferen.
gewoon met empty().quote:Op donderdag 26 september 2013 22:26 schreef d4v1d het volgende:
[..]
Ik gebruik geen framework.
[..]
Hoe bekijk jij dan of iets van je $_GET is zoals je het wil? (In dit geval niet leeg of niet opgegeven..)
Ja dat heb ik nu, zie de opmerking van Light.quote:
| 1 2 3 4 5 6 7 8 9 10 11 | <?php if ( key_exists( "not", $_GET ) ) { $not = urldecode( $_GET[ "not" ] ); if ( !empty( $not ) ) { // doe iets.. } } ?> |
| 1 2 3 4 5 6 | <?php if (!empty($_GET['not'])) { //doe iets } ?> |
En dan een warning krijgen dat de key "not" niet bestaatquote:Op donderdag 26 september 2013 22:29 schreef KomtTijd... het volgende:
Wat dacht je van
[ code verwijderd ]
...om maar een bizarre dwarsstraat te noemen.
quote:Op donderdag 26 september 2013 22:26 schreef d4v1d het volgende:
[..]
Ik gebruik geen framework.
[..]
Hoe bekijk jij dan of iets van je $_GET is zoals je het wil? (In dit geval niet leeg of niet opgegeven..)
| 1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php class Request { public static function get($key) { return (!empty($_GET[$key])?$_GET[$key]:false; } public static function post($key) { return (!empty($_POST[$key])?$_POST[$key]:false; } } $var = Request::get('not'); ?> |
Meen je die?quote:Op donderdag 26 september 2013 22:30 schreef KomtTijd... het volgende:
empty controleert ook op bestaan.
Voordeel van (static) classes en functiesquote:Op donderdag 26 september 2013 22:32 schreef d4v1d het volgende:
[..]
Ziet er netjes uit wel. Toch even overwegen misschien
| 1 2 3 4 5 6 7 8 9 10 11 | <?php class HTML { public static function printr($txt) { echo '<pre>'; print_r($txt); echo '</pre>'; } } HTML::printr($eenarray); ?> |
die jat ik even.quote:Op donderdag 26 september 2013 22:34 schreef totalvamp het volgende:
[..]
Voordeel van (static) classes en functieserg handig voor dingen die je meerdere keren gebruikt.
Mijn favo voor lokaal testen vand data
[ code verwijderd ]
Dan zou ik het wel iets uitgebreider maken, al was het maar omdat empty() ook true kan opleveren voor situaties waarbij er wel data (de string "0") aanwezig is. Er zijn meer situaties, maar die lijken me minder van belang voor $_GET en $_POST.quote:
Sssssssst ik laat hem langzaam die kant op gaan xDquote:Op donderdag 26 september 2013 22:36 schreef KomtTijd... het volgende:
Echt ga een framework gebruiken allemaal. Zoveel onnodige hoofdpijn hier...
Zijn er eigenlijk al kant en klare frameworks voor dit soort basis dingen? Ik kan er natuurlijk zelf een schrijven maar waarom het wiel opnieuw uitvindenquote:Op donderdag 26 september 2013 22:36 schreef KomtTijd... het volgende:
Echt ga een framework gebruiken allemaal. Zoveel onnodige hoofdpijn hier...
quote:Op donderdag 26 september 2013 22:37 schreef d4v1d het volgende:
[..]
Zijn er eigenlijk al kant en klare frameworks voor dit soort basis dingen?
Het ging om een voorbeeld getypt in dit scherm xD daarnaast wil je 0 wel opvangen, een id kan 0 zijn. Maar je hebt gelijk dat je er meer controles op wilt hebben dan dit.quote:Op donderdag 26 september 2013 22:36 schreef Light het volgende:
[..]
Dan zou ik het wel iets uitgebreider maken, al was het maar omdat empty() ook true kan opleveren voor situaties waarbij er wel data (de string "0") aanwezig is. Er zijn meer situaties, maar die lijken me minder van belang voor $_GET en $_POST.
Ik weet prima wat een framework isquote:Op donderdag 26 september 2013 22:39 schreef KomtTijd... het volgende:
[..]
....als je al een jaar met PHP bezig bent en nog nooit van een framework gehoord hebt? Ehja.
Uitzoeken hoe dingen werken kan heel goed zonder framework, is misschien nog wel beter dan met een framework. Voor dingen die op een live website komen, is een framework wel aan te raden. De grootste veiligheidsrisico's zijn dan meteen afgedicht (of je moet een update installeren als er een bug gefixt is).quote:Op donderdag 26 september 2013 22:36 schreef KomtTijd... het volgende:
Echt ga een framework gebruiken allemaal. Zoveel onnodige hoofdpijn hier...
quote:Op donderdag 26 september 2013 22:39 schreef Maringo het volgende:
[..]
Nou, Google. Plus dat overal tegenwoordig wel een framework voor is.
dit^quote:Op donderdag 26 september 2013 22:39 schreef KomtTijd... het volgende:
[..]
....als je al een jaar met PHP bezig bent en nog nooit van een framework gehoord hebt? Ehja.
Ik ben ook geen tegenstander van beginnen met from scratch programmeren, leer je toch beter de internals van een taal (zoal bijvoorbeeld wat de precieze eigenschappen zijn van een functie als empty(). )quote:Op donderdag 26 september 2013 22:39 schreef Light het volgende:
[..]
Uitzoeken hoe dingen werken kan heel goed zonder framework, is misschien nog wel beter dan met een framework. Voor dingen die op een live website komen, is een framework wel aan te raden. De grootste veiligheidsrisico's zijn dan meteen afgedicht (of je moet een update installeren als er een bug gefixt is).
| 1 2 3 4 5 6 | if (defined $hash{$key}) { print "$key bestaat en heeft als value $hash{$key}"; } else { print "$key bestaat niet of heeft undef als value"; } |
| 1 2 3 4 5 6 7 8 | <?php if (array_key_exists($key, $hash) && isset($kash[$key])) { print "$key bestaat en heeft als value $hash[$key]"; } else { print "of toch anders?" } ?> |
Dat. Om de logica te begrijpen, is het heel geschikt. Zolang je dat framework maar niet gebruikt voor productiecode.quote:Op donderdag 26 september 2013 22:40 schreef totalvamp het volgende:
Al is het waarschijnlijk wel handig als je zelf met een framework bouwen begint. Niet omdat je een goed framework gaat maken, maar om de logica erachter te snappen
Ik gebruik mijn eigen voor een scriptquote:Op donderdag 26 september 2013 22:45 schreef Light het volgende:
[..]
Dat. Om de logica te begrijpen, is het heel geschikt. Zolang je dat framework maar niet gebruikt voor productiecode.(En dat geldt voor iedereen.)
quote:Op donderdag 26 september 2013 22:45 schreef slacker_nl het volgende:
Bestaat er niet iets als defined in php?
In perl doe je dit:
[ code verwijderd ]
Want is_empty werkt niet als dusdanig.
[ code verwijderd ]
| 1 2 3 4 5 6 7 8 | <?php $a = array(); $a[0] = null; var_dump(array_key_exists(0, $a)); # bool(true) php > var_dump(isset($a[0])); # bool(false) ?> |
het is logisch dat array_keys_exists een true geeft hierquote:
Wat ik zei dusquote:
array_key_exists() controleert niet op de waarde, dat klopt.quote:Op donderdag 26 september 2013 22:53 schreef totalvamp het volgende:
[..]
het is logisch dat array_keys_exists een true geeft hierje controleert op de key niet de waarde
En als de key niet bestaat gaat het dan ook niet warnen?quote:Op donderdag 26 september 2013 22:59 schreef Light het volgende:
[..]
Jouw code kan worden vereenvoudigd door de aanroep van array_key_exists() weg te laten.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | cat x.php ; php x.php; echo "" <?php include_once("/home/xx/sbox/php/etc/env.php"); $array = array("hello" => "world", "how" => "are", "you" => null); $k = 'test'; print "value :" . $array[$k]; print "isset :" . isset($array[$k]); print "array_key :" . array_key_exists($k, $array); ?> PHP Notice: Undefined index: test in /home/xx/git/private/php/bin/x.php on line 9 Notice: Undefined index: test in /home/xx/git/private/php/bin/x.php on line 9 value :isset :array_key : |
Nope, niet als je isset() gebruikt.quote:Op donderdag 26 september 2013 23:01 schreef slacker_nl het volgende:
[..]
En als de key niet bestaat gaat het dan ook niet warnen?
Een template engine gebruiken?quote:Op vrijdag 27 september 2013 22:48 schreef xaban06 het volgende:
Hoe moet je PHP en HTML apart houden? Vooral met loops vind ik het lastig.
Stukje php, daaroder html, met php er door heen, onleesbaar.
| Forum Opties | |
|---|---|
| Forumhop: | |
| Hop naar: | |