login  Naam:   Wachtwoord: 
Registreer je!
 Forum

controleren met trim();

Offline lau - 02/11/2009 15:24
Avatar van lauHTML interesse Als ik controleer met trim();
Hoe pas ik dat toe? Zo?
  1. if (trim($_POST['string']) !== '') {

of moet dat zo:
  1. if (trim($_POST['string']) != '') {

of zo:
  1. if (!trim($_POST['string']) == '') {

Welke kan en welke is het beste?

11 antwoorden

Gesponsorde links
Offline NTS64 - 02/11/2009 15:32 (laatste wijziging 02/11/2009 22:27)
Avatar van NTS64 PHP gevorderde Goh, volgens mij is dit eerder een kwestie van hardware resources. Waarschijnlijk is de ene methode al wat belastender voor je hardware dan de andere. De eerste is zowiezo intensiever dan de tweede. De operator !== kijkt nl. na of het linkerlid van de vergelijking gelijk is aan, en van hetzelfde type is als het rechterlid van de vergelijking. De onderste is bovendien niet helemaal correct, de return value van trim is de getrimde string, dit zal misschien wel naar false gaan indien deze leeg is, maar de denkwijze erachter is dus niet helemaal correct imo.
Offline ArieMedia - 02/11/2009 16:26
Avatar van ArieMedia Gouden medaille

PHP ver gevorderde
Als het goed is kan je het ook zo doen:

  1. if(!empty(trim($_POST['string'])) {
  2. echo 'er staat wat in';
  3. } else {
  4. echo 'leeg';
  5. }
Offline lau - 02/11/2009 16:28
Avatar van lau HTML interesse Is dat niet heel erg dubbelop, want met trim(); controleer ik al of het leeg of niet leeg is. Daar voegt empty(); toch niets meer toe?
Offline NTS64 - 02/11/2009 16:37 (laatste wijziging 02/11/2009 16:38)
Avatar van NTS64 PHP gevorderde ArieMedia laat dan ook de vergelijking vallen, met de gedachte in het achterhoofd dat empty() sneller is dan een vergelijking.
Offline ArieMedia - 02/11/2009 16:51
Avatar van ArieMedia Gouden medaille

PHP ver gevorderde
lau schreef:
Is dat niet heel erg dubbelop, want met trim(); controleer ik al of het leeg of niet leeg is. Daar voegt empty(); toch niets meer toe?
Ik doe in principe hetzelfde als jou, alleen met een ander stukje code. Als ik het dus dubbelop doe, doe jij het ook.
Offline NTS64 - 02/11/2009 18:09 (laatste wijziging 02/11/2009 18:10)
Avatar van NTS64 PHP gevorderde
ArieMedia schreef:
[..quote..]Ik doe in principe hetzelfde als jou, alleen met een ander stukje code. Als ik het dus dubbelop doe, doe jij het ook.

Lau neemt nergens empty() in gebruik. Dus jij wil zeggen dat je het zo doet:

  1. <?php
  2. if(empty(trim($_POST['string'])) == "")
  3. {
  4. echo '$_POST[\'string\'] is leeg volgens ArieMedia';
  5. }
  6. ?>

Je kan nakijken of een veld leeg is met ofwel een vergelijking(met '') ofwel met de functie empty(), niet met beide. Lau vroeg zich dus af of jij het onmogelijke deed.
Offline Martijn - 02/11/2009 19:55
Avatar van Martijn Crew PHP trim is NIET hetzelfde als empty(). Trim haalt alleen maar spaties op het einde en begin weg.


  1. if(empty(trim($_POST['inputVeld']))){echo"echt leeg";}
Offline lau - 02/11/2009 20:39
Avatar van lau HTML interesse Is het niet zo dat trim beter is dan empty.
Als je een spatie in een invoerveld typt en dit met ALLEEN empty controleert, hij dit accepteert. In tegenstelling tot trim, wordt er toch nagegaan of het echt leeg is of er wel een karakter staat.
Offline Martijn - 02/11/2009 21:03
Avatar van Martijn Crew PHP je kunt ook doen

  1. if(strlen($_POST['string'])<3)){ echo"geen / ongeldige naam";}


dat scheelt weer een query naar de database als iemand gewoon 'a' intypt
Offline ArieMedia - 03/11/2009 08:59 (laatste wijziging 03/11/2009 09:03)
Avatar van ArieMedia Gouden medaille

PHP ver gevorderde
Woedi schreef:
[..quote..]
Lau neemt nergens empty() in gebruik. Dus jij wil zeggen dat je het zo doet:

[..code..]
Je kan nakijken of een veld leeg is met ofwel een vergelijking(met '') ofwel met de functie empty(), niet met beide. Lau vroeg zich dus af of jij het onmogelijke deed.
Lol jij zit de boel een beetje te verdraaien.

Ik gebruik nergens ''

Dat is toch precies hetzelfde wat ik doe. alleen if(empty()) is veel korter dan een vergelijking opschrijven.


@lau waarom zou je gaan controleren op spaties als je wil weten of iets leeg is of niet?

Edit: Ik gebruik overigens altijd Devioursoul's methode.
Offline Richard - 03/11/2009 09:56
Avatar van Richard Crew algemeen empty(trim($var)) kan sowieso niet, empty() werkt op variabelen, niet op waarden.

De efficiëntste manier om te kijken of een string op spaties na niet leeg is:

  1. if (ctype_space($string) || $string === '') {
  2. // code
  3. }
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.247s