Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: operator łączenia ciągów
Forum PHP.pl > Forum > PHP
dexter_m
No właśnie. Czytałem o tym operatorze, ale nadal nie mogę zrozumieć po co on jest.
Mam sobie coś takiego:

  1. <?php
  2. $zmienna1 = &#092;"To jest I zmienna\";
  3. $zmienna2 = &#092;"To jest II zmienna\";
  4.  
  5.  $wynik = $zmienna1.&#092;"\".$zmienna2;
  6.  echo &#092;"$wynik\";
  7. ?>


i po co się tak trudzić jak można równie dobrze napisać:

  1. <?php
  2. $zmienna1 = &#092;"To jest I zmienna\";
  3. $zmienna2 = &#092;"To jest II zmienna\";
  4.  
  5.  $wynik = &#092;"$zmienna1 $zmienna2\";
  6.  echo &#092;"$wynik\";
  7. ?>


Wniosek jaki z tego wyciągnełem to taki że ten operator łączenia ciągów przydaje się tylko wtedy jeśli zmienne nie są zapisywane w cudzysłowach. Czy mam rację?

Pozdrawiam, dexter. smile.gif
strife
Witam,

Ja zawsze używam kropek ponieważ skrypt wtedy jest bardziej przejrzysty...Po co pisać:
  1. <?php
  2.  
  3. $zmienna = $_SESSION['Login'];
  4. $suma = &#092;"Twoj login to $zmienna\";
  5. // ... jak mozna
  6. $suma = 'Twoj login to ' . $_SESSION['Login'];
  7.  
  8. ?>

Albo gdy jakis string zawiera \n \t \r a nie chcemy aby był traktowany specjalnie...

Pozdrawiam!
dexter_m
Jakiejś specjalnej różnicy to nie widzę, mniej kodu i tyle. Ale chyba już rozumiem. Dzięki! winksmiley.jpg
Speedy
Stosowanie kropki (ech nie pamiętam fachowej nazwy, ale wiem , że takowa istnieje smile.gif )
do łączenia ciągów przyspiesza działanie kodu .
dexter_m
No, przekonaliście mnie, że lepiej stosować operator łączenia ciągów (kropkę).

Pozdrawiam, dexter. smile.gif
matid
Ja widzę sens łączenia ciągów znaków za pomocą kropki tylko i wyłączenie w wypadku, gdy ciąg znaków jest ujęty w apostrof, a nie w cudzysłów.

Dajmy na to mamy taki kod:
  1. <?php
  2. echo &#092;"Zmienna z sesji: {$_SESSION['test']}\";
  3. echo &#092;"Zmienna z sesji: \" . $_SESSION['test'];
  4. echo 'Zmienna z sesji: ' . $_SESSION['test'];
  5. ?>

Pierwszy przypadek jest rozpatrywany przez parser tak:
Przeszukuję cały ciąg znaków w poszukiwaniu zmiennych. Znajduję zmienną $_SESSION['test'] - zamieniam ją na jej wartość. Wyświetlam wartość całego łańcucha.

Drugi przypadek wygląda tak:
Przeszukuję pierwszy ciąg znaków - nic nie znajduję. Dołącząm do tego ciągu wartość zmiennej $_SESSION['test']. Wyświetlam ciąg znaków.

Natomiast trzeci przypadek:
Pomijam pierwszy ciąg znaków. Dołączam do tego ciągu wartość zmiennej $_SESSION['test']. Wyświetlam.

Od razu widać, który z tych sposobów jest najwydajniejszy.
mike
Cytat(matid @ 2005-08-07 19:19:37)
Od razu widać, który z tych sposobów jest najwydajniejszy.

Który ? smile.gif

IMO:
Moim zdaniem trzeci jest najlepszy i ja stosuję wyłącznie taką konstrukcję.
Szybkość, szybkością - niewiele jej tutaj zaoszczędzimy, ale liczy sie też przejrzystość kodu. Dlatego ja preferuję sposób trzeci.
matid
Cytat(mike_mech @ 2005-08-07 20:25:38)
Moim zdaniem trzeci jest najlepszy i ja stosuję wyłącznie taką konstrukcję.
Szybkość, szybkością - niewiele jej tutaj zaoszczędzimy, ale liczy sie też przejrzystość kodu. Dlatego ja preferuję sposób trzeci.

Dokładnie, sposób trzeci jest najwydajniejszy. A co do przejrzystości - 2 i 3 są tak samo przejrzyste, ale lepiej używać 3 smile.gif
dexter_m
smile.gif No tak. Moim skromnym zdaniem: winksmiley.jpg

I sposób : najgorszy,
II sposób: średni,
III sposób: najlepszy.

Szybkość i przejrzystość kodu przedewszystkim. smile.gif

Zrozumiałem o co chodzi i postanowiłem się przenieść ze sposobu pierwszego na trzeci. Od dzisiaj od godź 20.36 używam:
Kod
echo 'To jest pewna zmienna: ' . $_POST['zmienna'];


A, i jeszcze jedno, tak przy okazji. Dlaczego na forum jest zły czas. to znaczy zegar chodzi o 2h wcześniej. worriedsmiley.gif

Pozdrawiam, dexter. smile.gif
mike
Cytat(dexter_m @ 2005-08-07 19:38:06)
A, i jeszcze jedno, tak przy okazji. Dlaczego na forum jest zły czas. to znaczy zegar chodzi o 2h wcześniej.

Przawdopodobnie masz źle ustawione preferencje swojego profilu.

Każdy może sobie ustawić jaki czas mu się wyswietla.
dexter_m
Aha, rozumiem.
Dzięki! smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.