Apostrof czy cudzysłów?
Ostatnia modyfikacja: 01.06.2021
Jak już było wspomniane, stringi należy zapisywać w apostrofach lub cudzysłowach. Wspomniałem też, że istnieje pomiędzy nimi jedna, ale bardzo istotna różnica.
Mianowicie wszystko, co zostanie wpisane w apostrofach, zostanie w taki sposób odebrane przez interpreter. Nic więcej się z tym stringiem nie stanie. Przy użyciu cudzysłowów jest to dodatkowo interpretowane - zadziałają na przykład rozmaite znaki specjalne, czy też nazwy zmiennych zostaną zamienione na ich wartości. Taki sposób wstawienia zmiennych do ciągu nazywamy też interpolacją.
Zobaczmy to w praktyce:
<?php
$version = 8;
echo 'PHP $version!'; // result: PHP $version!
echo "PHP $version!"; // result: PHP 8!
Czy przykład z drugim echo
można zapisać w apostrofach? Oczywiście, wystarczy użyć konkatenacji, którą poznaliśmy w poprzedniej lekcji. Nic nie stoi na przeszkodzie, aby połączyć ze sobą tekst i wartość zmiennej, nawet jeśli jest ona liczbą.
<?php
$version = 8;
echo 'PHP ' . $version . '!'; // result: PHP 8!
Który sposób jest lepszy? Cóż, jeśli nie podstawiamy zbyt wielu rzeczy do stringa, moim zdaniem ten pierwszy, z apostrofami. Interpreter nie musi niepotrzebnie dodatkowo przetwarzać stringów. Jeśli jednak jest to tekst, który trzeba wielokrotnie łączyć, możesz użyć zapisu z "
. Ja używam apostrofów „domyślnie”, a gdy trzeba coś w tekście łączyć, to zmieniam na cudzysłowy.
Jako dodatek powiem, że przy zapisie z cudzysłowami warto wpisywać nazwy zmiennych w klamrach { }
. Dzięki temu kod stanie się nieco czytelniejszy. Nie jest to jednak obowiązek, podany powyżej przykład również działa.
<?php
$version = 8;
echo "PHP {$version}!"; // result: PHP 8!
Ciekawostka
Wspomnę przy okazji, że istnieją jeszcze dwa zapisy stringów w PHP: Heredoc i Nowdoc. Przydają się one, gdy mamy jakiś długi, wieloliniowy tekst. Heredoc zachowuje się jak string w cudzysłowie (czyli można tam wstawić np. zmienne, które zostaną zinterpretowane), a Nowdoc jak zapis z apostrofami.
Komentarze