Kiedy używać pojedynczego, a kiedy podwójnego apostrofu

Może wydać Ci się to bezsensowne zastanawiać się jakiego użyć apostrofu. Zauważyłem że większa część programistów PHP, nie przykłada większej uwagi do tego. Postanowiłem napisać jaka jest różna pomiędzy nimi, a może uda mi się przekonać choć kilka osób do tego, aby stosować apostrofów zgodnie ze sztuką. Zacznijmy od podstaw: apostrofy używane są w programowaniu do deklarowania zmiennych typu string . Zmienne tego typu można użyć jako parametry metody, przypisać do zmiennej (stałej) lub od razu przekazać do standardowo wyjścia np. za pomocą funkcji echo . Do tego celu możemy użyć dwóch notacji: pojedynczego lub podwójnego apostrofu.

Pojedynczy apostrof

Pojedynczy apostrof jest szybszym sposobem niż podwójny apostrof na zadeklarowanie ciągów znaków typu string bez dodatkowego sprawdzania, czy wewnątrz tego ciągu znajdują się zmienne lub znaki specjalne jak np. \n . Najczęściej używamy go gdy nie chcemy, aby interpreter PHP dodatkowo sprawdzał co znajduje się w środku, tylko potraktował całość jako string .

Podwójny apostrof

W odróżnieniu od pojedynczego apostrofu, interpreter PHP przeszukuje wnętrze zadeklarowanego ciągu znaków w poszukiwaniu znaku $ , { lub \. To co znajduje się tuż za tymi znakami próbuje zinterpretować jako zmienną lub jako znak specjalny, np. znak nowej linii.

Przykład:

W powyższym przykładzie kolejno:

  1. Przypisałem zmienną z parametru $_GET o nazwie name i surname do zmiennej $name .
  2. Przypisałem zmienną z parametru $_GET o nazwie age do zmiennej $age .
  3. Wyświetliłem powitanie użytkownikowi.
  4. Wyświetliłem ile lat żyje osoba, która siedzi przed komputerem.

Przykład jest dosyć prosty ale można go napisać w trochę inny sposób:

Drugi przykład robi dokładnie to samo co pierwszy. Różni się jednak stylem i w bardzo małej mierze czasem wykonania (drugi przykład jest wolniejszy).

Można w drugim przykładzie zauważyć że próba dostania się do zmiennej $_GET do parametru name, surname oraz age następuje z użyciem podwójnego apostrofu. Jest to sposób jak najbardziej poprawny ale wskazuje na nieznajomość różnicy pomiędzy pojedynczym, a podwójnym apostrofem. Użycie tego drugiego sposobu powoduje próbę znalezienia zmiennej w ciągu znaków. Jest to operacja nadmiarowa, której można było uniknąć używając pojedynczego apostrofu.

Innego nadużycia podwójnego apostrofu można zauważyć w drugim przykładzie, w drugim użyciu echo , gdzie następuje w jednej linii utworzenie dwóch ciągów znaków, a następnie połączenie powstałych ciągów znaków oraz zmiennej $age w jeden ciąg. Ten sposób jest jak najbardziej poprawny z punktu widzenia interpretera PHP ale wprowadza dodatkowe dwie operacje tworzenia oraz łączenia wszystkiego w całość.

Trzecią różnica (a raczej ciekawostka), o której chciałbym wspomnieć, to sposób w jaki wywołałem pierwsze echo  w pierwszym przykładzie. Nie użyłem znaku kropki do połączenia ciągów znaków. Użyłem zamiast tego, przecinka. Jest to sposób na wielokrotne wywołanie tej samej funkcji z różnymi parametrami. Ta linijka kodu jest równoważna z zapisem:

Jest to sposób odrobinę szybszy niż łączenie trzech ciągów w jeden, a następnie wyświetlenie go.

Podsumowanie

Jako podsumowanie tego post-a chciałbym przedstawić różnice czasowe w wykonaniu obu tych przykładów. Pozwoli to Tobie zdecydować czy będziesz zaprzątał sobie głowę takimi drobiazgami jak apostrofy. Osobiście uważam że używanie odpowiednich apostrofów do sytuacji, wskazuje na wysoką estetykę i dbałość o szczegóły. Jest to dla mnie oznaka że autor kodu jest świadom tego co robi. Ale dość moich przemyśleń:

Po wykonaniu 1 460 000 razy każdego z przykładów otrzymałem czasy:

  1. przykład wykonywał się 371,75 sekund,
  2. przykład wykonywał się 392, 86 sekund.

Pierwszy przykład jest jedynie o 4,5% szybszy niż drugi. Różnica czasu wykonania skryptu okazała się niewielka, nawet dla prawie półtora miliona powtórzeń. Można stwierdzić  że wybór apostrofów dla większości zastosowań jest kwestią upodobań i gustu. Osobiście staram się nie nadużywać podwójnego apostrofu ale po wykonaniu tego testu nie mogę kategorycznie stwierdzić że używanie jedynie podwójnego apostrofu jest złe. Wybór, którego apostrofu użyć pozostawiam Tobie.

PS.: aby użyć pojedynczego apostrofu nie trzeba wciskać Shift-a 🙂 Mniej wciskania, a szybciej działa.

Kiedy używać pojedynczego, a kiedy podwójnego apostrofu

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *