![]() |
Fortsätter med lite frågor om PHP.
1. Vad är skillanden på funktionerna print och echo i php? 2. Hur infogar jag en och samma html-kod i olika php-filer enklast? Är det include_once ("fil.php"); på det stället jag vill visa innehållet som gäller? Och i filen skriver jag bara HTML-koden? Kommer det fungera så? Tacksam för svar. |
1. http://www.faqts.com/knowledge_base/view.p...ml/aid/1/fid/40
2. Ja, så som du beskriver. Eller kan du ancända require_once() funktionen. |
Citat:
Angående 2 - det fungerade precis som jag ville! Där har man sparat några tusen rader kod och oberäknerligt antal timmar ;) |
Den större skillnaden mellan echo och print är väl att print är en funktion medans echo inte är det, jag läste det någonstans..
|
Citat:
|
Du kan dessutom använda följande med echo...
Kod:
echo "hej " , $username , "!!!" Kod:
echo "hej " . $username . "!!!" |
Citat:
|
Enklast:
$username='Albert'; echo "hej $username !!!"; returnerar: hej Albert !!! medan $username='Albert'; echo 'hej $username !!!'; returnerar: hej $username !!! (variabelnamnet ersätts ej med värdet) Notera även skillnaden mellan require och include: require stannar och rapporterar fatal error om inte filen finns, medan include går vidare och nöjer sig med en varning. _once gör som namnet antyder och läser in filen en och endast en gång. Är mest till för att undvika att försöka omdefiniera objekt och funktioner flera gånger från inkluderade filer. Vid inkludering övergår php-tolken till html-läge när den inkluderade filen startar vilket gör att man måste upprepa php-taggarna om man man vill ha kommandon med i den inkluderade filen. Vid slutet av inkluderingen går tolken tillbaka till php-läge igen. |
Men detta fungerar väl inte?
echo "hej, $_GET['name']!" |
Citat:
Det funkar utmärkt |
Citat:
Kör antingen mysql_query("UPDATE table SET ID = '$_GET[ID]'); (inga enkelfnuttar runt ID) eller mysql_query("UPDATE table SET ID = '"$_GET[ID]."' WHERE username = 'blabla'"); Observera att det sista exemplets fnuttar ser ut såhär ' " . $variable . " ' (utan massa mellanrum dvs :)) |
Detta hör egentligen inte till tråden men ett litet tips kommer här:
Kod:
$foo = mysql_query( sprintf("INSERT INTO tbl (id, field) VALUES (%d, '%s')", $id, $field) ); |
Citat:
|
Samma här.. kommatecken istället för punkt... inte sett tidigare, men samtidigt, vad är det som gär det lite snabbare? Är det nu så tycker man ju att alla exempel i böcker och på nätet borde köra med kommatecken.
Du Filip... tjusig "broken" avatar du har ;) |
Skillnaden mellan att dela upp strängen (t.ex.) med , istället för . vid användning av "funktionen" echo är:
PHP måste läsa ut och exekvera hela raden innan den kan "retuneras" när man använder . Om man däremot använder, så skriver PHP ut det så fort den är klar med "varje" del och därmed krävs det mindre minne av servern. Kod:
echo "del1", "del2", $del3, "del4"; |
Citat:
Skriv så här istället: echo "hej, {$_GET['name']}!"; Klamrarna gör att PHP kan komma åt ett värde ur en matris med sträng-index, eller som manualen uttrycker det: "As in Perl, you can access a value from the array inside double quotes. However, with PHP you'll need to enclose your array between curly braces." Inga mellanslag mellan klammer och variabel! |
Jag har hört att
Kod:
hej <?=$username?> !!! Kod:
<?echo "hej $username !!!";?> |
Citat:
Det är dessutom inte framtidsvänligt i och med att PHP5 har shorttags OFF som standard. |
Citat:
Jag var tvungen att göra detta för jag blev lite nyfiken... ;) "inline-metoden" Kod:
<?$username="test";$time_start = microtime(true); Kod:
<?$username="test";$time_start = microtime(true); I alla mina tester så var "inline-metoden" snabbare än "echo-metoden" med ungefär 0.5 sek på min test-server, INGEN gång var förhållandet det omvända. Sen om du vill lägga dit <?php istället för <? - lär ju inte spela någon som helst roll. Inte för att jag tror att resultatet spelar nån som helst roll för en praktisk php-applikation men som princip kan det vara bra att ha belägg för sina påståenden... :lol: |
Alla tider är GMT +2. Klockan är nu 19:31. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson