PHP tips

Gestart doorFreestyle23 reacties411 weergaven

24 berichten · pagina 1 van 2

Freestyle

Lid · Topicstarter

Berichten
7.681
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Van de week heb ik wat handige dingen gevonden, die ook wel handig voor jullie kunnen zijn.
Het is niet echt een tutorial, maar dit is denk ik wel de beste plek.

Tip 1 echo.

echo Hey . $var .  alles goed?;
// is langzamer dan
echo Hey , $var ,  alles goed?;


Tip 2 & "".

echo "Hey alles goed?";
// is langzamer dan
echo Hey alles goed?;


Gebruik "" alleen als je er een var in wilt gebruiken. Bijvoorbeeld:

echo "hey $var alles goed?";


Tip 3 Isset ipv strlen.

if(strlen($var) > 10))  echo var is langer dan 10;
// is langzamer dan
if(isset($var[11])) echo var is langer dan 10;


Tip 4 isset.

if(isset($var, $var1)) echo makkelijker;
// is makkelijker dan 
if(isset($var) && isset($var1)) echo ja allebei goed;


Dit waren een paar tips smileBij de bovenstaande tips is de snelheid veel al maar enkele milliseconden, maar bij grote websites kan het wel degelijk een verschil maken!

En voel je vrij om hier onder meer tips toe te voegen!
0
Berichten
14.025
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien
Vraag over tip 3:
Wat als je wilt dat het aantal karakters 10 is? Niet hoger of niet lager?
0
Freestyle

Lid · Topicstarter

Berichten
7.681
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Dylanh schreef:
Vraag over tip 3:
Wat als je wilt dat het aantal karakters 10 is? Niet hoger of niet lager?
Dan krijg je een true.
Want een string is net als een array.
Als je dit hebt:

[COLOR= #0000BB]<?php
$str[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]"0123456789012345"[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #FF8000]#en dan doe je dit:[/COLOR]
[URL="http://www.php.net/echo"]echo[/URL] [COLOR= #0000BB]$str[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]10[/COLOR][COLOR= #007700]];[/COLOR] [COLOR= #FF8000]// is 9[/COLOR]

[URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/isset"]isset[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$str[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]10[/COLOR][COLOR= #007700]]))[/COLOR] [URL="http://www.php.net/return"]return[/URL] true[COLOR= #007700];[/COLOR]
[URL="http://www.php.net/else"]else[/URL] [URL="http://www.php.net/return"]return[/URL] false[COLOR= #007700];[/COLOR]
[COLOR= #FF8000]# antwoord = true[/COLOR]
?>
0
Berichten
1.684
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Sneller maar onhandiger. Ik denk niet dat je er veel op zal winnen. Wel leuke tut.
0
Freestyle

Lid · Topicstarter

Berichten
7.681
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Maarten, wat vind je er dan onhandiger aan?
Bij echo met commas ipv punten is het aanwennen.
Zelfde met en ""
isset ipv strlen, zie ik niet precies hoe dat ongemakkelijker is? Het is korter, en sneller. En naar mijn mening leest het ook fijner.
en isset($var, $var1) oogt het ook fijner.
0
Berichten
1.684
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Freestyle schreef:
Maarten, wat vind je er dan onhandiger aan?
Bij echo met commas ipv punten is het aanwennen.
Zelfde met en ""
isset ipv strlen, zie ik niet precies hoe dat ongemakkelijker is? Het is korter, en sneller. En naar mijn mening leest het ook fijner.
en isset($var, $var1) oogt het ook fijner.
Ja, maar als je een script schrijft, wil je dat iedereen erop kan voortbouwen. Die methodes zijn nogal "speciaal". De eerste drie tips vind ik goed, maar de anderen niet.
0
Berichten
3.334
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Maartenf schreef:
Eerdere citaten tonen
Freestyle schreef:
Maarten, wat vind je er dan onhandiger aan?
Bij echo met commas ipv punten is het aanwennen.
Zelfde met en ""
isset ipv strlen, zie ik niet precies hoe dat ongemakkelijker is? Het is korter, en sneller. En naar mijn mening leest het ook fijner.
en isset($var, $var1) oogt het ook fijner.

Ja, maar als je een script schrijft, wil je dat iedereen erop kan voortbouwen. Die methodes zijn nogal "speciaal". De eerste drie tips vind ik goed, maar de anderen niet.
Beter houden jullie je nu stil, voordat dit topic ook alweer "bederft" is door reacties.

toevoeging op 27 augustus 2013, 14:29:11:
Leuke tutorial! Ik zal het zeker gaan gebruiken!
0
Freestyle

Lid · Topicstarter

Berichten
7.681
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Maartenf schreef:
Eerdere citaten tonen
Freestyle schreef:
Maarten, wat vind je er dan onhandiger aan?
Bij echo met commas ipv punten is het aanwennen.
Zelfde met en ""
isset ipv strlen, zie ik niet precies hoe dat ongemakkelijker is? Het is korter, en sneller. En naar mijn mening leest het ook fijner.
en isset($var, $var1) oogt het ook fijner.

Ja, maar als je een script schrijft, wil je dat iedereen erop kan voortbouwen. Die methodes zijn nogal "speciaal". De eerste drie tips vind ik goed, maar de anderen niet.
Dan vind ik het persoonlijk apart dat je dat van Tip 4 zegt, aangezien die eigenlijk zo bedoeld is. Maar dat is ieder zijn mening. Je hoeft ze namelijk niet te gebruiken, het zijn tips.
0
Rik

Lid

Berichten
18.393
Reputatie
0
Punten
0,04
Lid sinds
Laatst gezien
Freestyle schreef:
Tip 1 echo.

echo Hey . $var .  alles goed?;
// is langzamer dan
echo Hey , $var ,  alles goed?;
Dit scheelt wellicht microseconden. Maar dat is echt verwaarloosbaar. Het is dus een kwestie van wat je zelf fijn vind lezen.
Freestyle schreef:
Tip 2 & "".

echo "Hey alles goed?";
// is langzamer dan
echo Hey alles goed?;
Gebruik "" alleen als je er een var in wilt gebruiken. Bijvoorbeeld:

echo "hey $var alles goed?";


NEE!!!
ALTIJD maar dan ook ALTIJD vars buiten de quotes halen. Maakt niet uit of het enkele of dubbele quotatietekens zijn.
Als je "" gebruikt gaat PHP namelijk altijd zoeken of er vars in staan die mogelijk vervangen moeten worden (tenzij deze instelling eventueel op de server uit staat). Het is dus van belang altijd de variabelen buiten quotaties te houden voor leesbaarheid, snelheid (minimaal overigens) en platformonafhankelijkheid. Het gebruik van concatenatie van variabelen werkt namelijk altijd, op elke server.
Freestyle schreef:
Tip 3 Isset ipv strlen.

if(strlen($var) > 10))  echo var is langer dan 10;
// is langzamer dan
if(isset($var[11])) echo var is langer dan 10;
Ook dit is nauwelijks te meten, en bovendien geeft isset niet altijd de gewenste output. Je weet namelijk niet of je met een string te maken hebt (correct, een string is in feite een array). strlen geeft echter een foutmelding als de opgegeven parameter geen string is, je weet dus dat je ten alle tijden met een string werkt, wat bij isset() niet het geval is.

Ik zeg niet dat de tips die je geeft slecht zijn op sich, maar het mist de nodige (correcte) onderbouwing. De meeste tips hebben vooral te maken met micro-optimalisatie; iets waar je eigenlijk nauwelijks zorgen over hoeft te maken tenzij je echt met sites van een paar miljoen users zit. Daarom ben ik van mening dat je beter voor leesbaarheid en standaarden kunt gaan.
0
Freestyle

Lid · Topicstarter

Berichten
7.681
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Goed antwoord, het het meeste is ook voor wat je zelf persoonlijk het fijnste vind.
Rik schreef:
Dit scheelt wellicht microseconden. Maar dat is echt verwaarloosbaar. Het is dus een kwestie van wat je zelf fijn vind lezen.

Met ongeveer 4miljoen karakters scheelt het ongeveer 1 seconden. En daar bij als je punt gebruikt dan gaat hij eerst nog wat checks uit voeren, bij de comma zet hij het gewoon neer.
bron
Quote:
NEE!!!
ALTIJD maar dan ook ALTIJD vars buiten de quotes halen. Maakt niet uit of het enkele of dubbele quotatietekens zijn.
Als je "" gebruikt gaat PHP namelijk altijd zoeken of er vars in staan die mogelijk vervangen moeten worden (tenzij deze instelling eventueel op de server uit staat). Het is dus van belang altijd de variabelen buiten quotaties te houden voor leesbaarheid, snelheid (minimaal overigens) en platformonafhankelijkheid. Het gebruik van concatenatie van variabelen werkt namelijk altijd, op elke server.

Daar ben ik het helemaal mee eens, ik had het er meer bijgezet tot dat ook kan.

Quote:
ok dit is nauwelijks te meten, en bovendien geeft isset niet altijd de gewenste output. Je weet namelijk niet of je met een string te maken hebt (correct, een string is in feite een array). strlen geeft echter een foutmelding als de opgegeven parameter geen string is, je weet dus dat je ten alle tijden met een string werkt, wat bij isset() niet het geval is.

Over die isset() vs strlen() heb je een goed punt, had ik zelf nog niet over gedacht.
Maar voor grote sites, en voor sommige strings is het denk ik wel een betere optie. Omdat strlen een functie is, en isset niet. En een functie aanroepen duurt altijd langer.
Als je meer dan 1000000 karakters hebt is het verschil 7 seconden.
bron
dus als je ZEKER weet dat het een string is dan lijkt het mij een logische keuzen.

En wat je zegt dat de meeste micro optimalisaties zijn klopt. Maar als je een systeem wilt maken en eventueel wilt verkopen, en je krijgt een grote klant is het wel handig dat het systeem dan goed blijft werken.

NOTE: ik zeg niet dat je het MOET gebruiken, je moet blijven doen wat jij het fijnste vind. Maar houd dit soort dingen in gedachten, vooral als je grote ambitie hebt.
0
Rik

Lid

Berichten
18.393
Reputatie
0
Punten
0,04
Lid sinds
Laatst gezien
Jep. Het zijn over het algemeen wel goede dingen om rekening mee te houden, maar ik zie liever dat mensen bijvoorbeeld stoppen met
Maar tip 2 is toch wel waar mensen ontzettend op moeten letten.
0
Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
wat scheelt het qua tijd? Kan je dat erbij zetten wink
0
Berichten
1.447
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
wie weet een goeie site voor te leren?
0
Berichten
3.334
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Jordymen schreef:
wie weet een goeie site voor te leren?
confused
0
Berichten
1.447
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Robiin schreef:
Eerdere citaten tonen
Jordymen schreef:
wie weet een goeie site voor te leren?
confused
ik had een hele goeie site met goeie uitleg niet phptuts.nl maar een andere
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren