zie de volgende code:
<?php
// deze file bevat alle in XUur gebruikte foutboodschappen
$gb0000 = "Gebruik de back-knop van uw browser. ";
$fb0001 = "Gebruikersnaam moet worden ingevuld.\n {$gb0000}";
$fb0002 = "Wachtwoord moet worden ingevuld. \n {$gb0000}";
$fb0003 = 'Kan geen link naar de server maken.';
$fb0004 = 'Kan de database niet openen.';
?>
Deze statements worden geinclude in het hoofdprogramma.
Het probleem is dat de linefeed in fb0001 en fb0002 niet werkt.
Een ander, maar gerelateerd probleem is, dat ik niet begrijp waarom niet.
Iemand een idee? Hulp wordt zeer op prijs gesteld.
Eigenlijk is dus \n\r de juiste notatie.. (wow,, microsoft doet ook eens iets goed!)
Stuk text uit "The C Programming Language Brian w.Kernighan & Dennis M.Ritchie":
Page 38 TYPES,OPERATORS AND EXPRESSIONS CHAPTER 2
[...]
The complete set of excape sequences is
\a alert (bell) character
\b backspace
\f formfeed
\n newline
\r carriage return
\t horizontal tab
\v vertical tab
\\ backslash
\? question mark
\' single quote
\" double quote
\ooo octal number
\xhh hexadecimal number
[...]
Verder op de pagina staat dan nog ergens:
The Character constant '/0' represents the character with value zero, the null character. '\0' is often written instead of 0 to emphasize the caracter nature of some expression, but the numeric value is just 0.
Jullie zullen niet aan alles iets hebben, het is tenslotte een C boek. Maar het grootste gedeelte is mischien toch nog wel handig ;-)
@niek, ik twijfelde al, maar gezien ik bijna altijd met de constante PHP_EOL werk maakt het niet veel uit ;)
Nee klopt, Ieder operating system doet het anders, maar PHP_EOL is inderdaad het makkelijkste.
Voor de mac is het dacht ik alleen \r? Ik weet wel dat het niet uit maakt welk operating system je hebt, in C blijft het altijd hetzelfde. Het ligt er maar net aan wat je operating system "verzint".
Als je op een Unix machine alleen een \n doet, dan krijg je dit effect:
blablablabla
blablabla
Dan heb je dus geen Carriage Return gedaan (\r) waardoor de " pointer " op de zelfde plaats blijft.
echo "Edgar dronk een $beertje.<br />"; // Hier gaat het fout, deze werkt niet.
echo "Edgar dronk een {$beer}tje.<br />"; // Deze werkt prima.
echo "Edgar drinkt veel $beer.<br />"; // Deze werkt ook gewoon.
?>
@TS:
Aan je avatar te zien werk je op een linux machine ;) maar stel dat je toch op een windows machine werkt, \n is slechts een deel, neem \r\n of de constante PHP_EOL deze past zich vanaf PHP5 aan, aan het systeem waar je op werkt.
Ik zie deze nu pas..
Ik wil niet vervelend zijn, maar dat heb je toch helemaal niet nodig?
<?php
$beer = 'bier';
echo "Edgar dronk een ".$beer."tje.<br />"; // Deze werkt prima.
echo "Edgar drinkt veel ".$beer.".<br />"; // Deze werkt ook gewoon.
?>
Als je op de juiste manier PHP gebruikt, dan haal je de variabeles buiten de quotes, en hoeft dat gedoe met de accolades toch niet? Of heb ik het nu fout? ( ik begin nu zelf ook te twijfelen...)
Variabelen buiten quotes vind ik persoonlijk ook beter, maar dit voorbeeld was om aan te geven waar het fout kan gaan als je dat niet doet en ook geen accolades gebruikt.
Maar als je de variabelen toch buiten quotes haalt, gebruik dan ook enkele quotes...
Volgens mij zijn accolades niet sneller, er is wel een verschil tussen dubbele en enkele quotes, maar dat is te verwaarlozen.