2015. már 18.

Aposztróf és idézőjel

írta: Bozzai Gyula
Aposztróf és idézőjel

apid1.pngMi a különbség aközött, hogy egy szöveget aposztrófok vagy idézőjelek közé teszünk PHP-ben? Erre a kérdésre keressük a választ.

Amikor egy sima szöveget iratunk ki a képernyőre az echo (vagy a print) függvénnyel, mindegy hogy aposztrófok vagy idézőjelek közé tesszük. A kért szöveg megjelenik a képernyőn:

 

<?php

    echo "Teszt szöveg";
    echo "<br />"; // Sortörés
    echo 'Teszt szöveg';

?>

A fő különbség, hogy az idézőjelek között lévő változókat és speciális karaktereket a PHP megpróbálja értelmezni, és az eredményt kiírni, amíg az aposztrófok között lévőket szövegként kezeli, és nem értelmezi:

 

<?php

    echo "Teszt szöveg";
    echo "<br />"; // Sortörés
    echo 'Teszt szöveg';
    echo "<br />"; // Sortörés

    $valtozo = "Teszt";
    
    echo "A változó értéke: $valtozo.";
    echo "<br />"; // Sortörés
    echo 'A változó értéke: $valtozo.';
    
?>

A fenti kód jól szemlélteti az eltérést. Az idézőjelek a $valtozo értékét eredményezték (Teszt), az aposztrófok viszont csak szimpla szövegnek tekintették ($valtozo).

Magyarul, az aposztrófok pontosan azt jelenítik meg, amit gépelünk közéjük. Azonban, akad két kivétel:
Az első, ha aposztrófok között szeretnénk aposztrófokat megjeleníteni, akkor ezeket nem írhatjuk simán a kódunkba, hiszen a második aposztróf jelet a PHP a szöveg végének értelmezné, a fennmaradó rész pedig hibákat okozna.:

 

<?php

    echo 'Teszt 'szöveg''; // Hibás kód
    
?>

A megoldást a backslash (\) karakter jelenti. A fenti kód helyesen:

 

<?php

    echo 'Teszt \'szöveg\''; // Helyes kód
    
?>

A második pedig maga a backslash karakter, ami speciális jelentéssel bír, ezért ha ilyen karaktert szeretnénk megjelentetni, akkor használjuk duplán írva (\\).

A backslash az idézőjeleknél is segít. Ha idézőjelek között szeretnénk idézőjelet megjeleníteni, akkor használjuk \" formában.

 

<?php

    echo "Teszt \"szöveg\"";
    
?>

És még egy érdekesség a végére.

Ahogy a poszt elején írtam, az idézőjelek közt lévő változókat a PHP kiértékeli, azonban ha szeretnénk, hogy a $ jelet ne változóként értelmezze, akkor itt is használhatjuk a backslash karaktert (\$):

 

<?php


    $valtozo = "Teszt";
    
    echo "A változó értéke: \$valtozo.";
    
?>

 

Szólj hozzá

print echo idézőjel aposztróf