"" rond variabelen in functies

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Danny

Danny

30/12/2004 18:45:00
Quote Anchor link
zie http://www.phphulp.nl/php/scripts/1/69/

kan iemand me eens uitleggen waarom er bij $imagehw = GetImageSize("$file");
de variabele $file quotes staan?? Het script werkt maar ik snap niet dat het kan werken.
Zo geef je toch een string door met "$file" erin.

mvg

Danny
 
PHP hulp

PHP hulp

13/01/2025 07:27:40
 

30/12/2004 18:48:00
Quote Anchor link
officieel moet een string waar karakters in zitten omgeven worden door " ".. Met nummers en vars hoeft dat niet.. PHP pikt het wel, alleen is het niet juist.. Dus dat kan je weghalen :)
 
Jorik

Jorik

30/12/2004 18:48:00
Quote Anchor link
PHP is niet zo streng dat het hierdoor gelijk fout gaat..
Waarschijnlijk als je erboven zet
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
ERROR_REPORTING(E_ALL);
?>

dat je er wel een error voor krijgt..

het is denk ik een sclordigeheidsfout dat het tussen quotes staat :)
 
Danny

Danny

30/12/2004 18:59:00
Quote Anchor link
PHP slikt dus echt alles. Soms makkelijk doch dikwijls zeer verwarrend.

thkz
Danny
 
Dutchcamel

dutchcamel

30/12/2004 19:19:00
Quote Anchor link
Waren vrouwen ook maar zo makkelijk he :P

-ontopic-
Om ook nog maar iets nuttigs toe te voegen. Als je om de variabele enkele quotes zet ( '$var' ) wordt letterlijk $var geprint. Als je dubbele quotes gebruikt ( "$var" ) wordt voor de zekerheid gecontroleerd of er toch nog variabelen binnen die quotes staan. "$var" levert print dus de inhoud van $var en niet $var zelf (hm..logische zin :P).
Daarom is het gebruik van enkele quotes ook sneller dan dat je dubbele quotes gebruikt. Maar in de praktijk zul je wel erg grote scripts moeten hebben om dat verschil te merken. Het is er wel :)

Maar toch blijft het zo dat variabelen officieel buiten quotes horen, ook al slikt PHP het als ze er binnen staan.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$var
= "warm"; // Goed
$var = 'warm';  // Iets beter

echo "Het is hier $var"; // Werkt goed

echo 'Het is hier $var'; // Fout, levert Het is hier $var op

echo "Het is hier ".$var; // Beter :)

echo 'Het is hier '.$var; // Het beste :D
?>
Gewijzigd op 30/12/2004 19:29:00 door dutchcamel
 
Jorik

Jorik

30/12/2004 20:39:00
Quote Anchor link
Waarom is single quotes beter als dubbele?.. ik gebruik altijd dubbele, en bijna alle scripts die ik zie word het ook gedaan..

bv:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?
$sql
= "SELECT * FROM iets WHERE id='".$_POST['id']."'";
$query = mysql_query($sql);
?>

ff als voorbeeld, komt het allemaal in voor :P
 
Dutchcamel

dutchcamel

31/12/2004 00:36:00
Quote Anchor link
Beter is misschien niet het goede woord, dat is meer mijn mening. (Iets) Sneller is beter. Zoals ik al zei, bij ' wordt niet meer gecontroleerd of er niet toch variabelen tussen de quotes staan. Daarom is het dus een heel klein beetje sneller en vind ik het persoonlijk beter.
Maar voor queries gebruik ik zelf ook altijd " ipv ', omdat in de query zelf een ' voor kan komen en je die dan weer moet escapen. Voor hele HTML regels met veel "-en erin is het dan weer handiger om ' te gebruiken zodat je niet over \" hoeft te typen.
Het is misschien niet beter... maar je begrijpt wat ik bedoel. Vaak is het netter (minder escapes) en sneller (hoewel dat nauwelijks te merken is). Maar er zijn momenten dat ik zelf ook " gebruik, zoals bij queries.

Voor ik het vergeet, als je \n \r of \t gebruikt moet je " gebruiken, die werken binnen ' namelijk niet :)
 
Mitch X

Mitch X

31/12/2004 01:13:00
Quote Anchor link
Eens met camel :)
 
Johan

Johan

31/12/2004 10:03:00
Quote Anchor link
als je jezelf iets aanleert, doe het dan gelijk goed, maar als je het andere al kent en het werkt, vind ik niet dat je het andere moet gaan leren...

*mijn mening...*:)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.