Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> operator łączenia ciągów
dexter_m
post
Post #1





Grupa: Zarejestrowani
Postów: 139
Pomógł: 0
Dołączył: 16.07.2005

Ostrzeżenie: (10%)
X----


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


--------------------
Warsztat: Windows XP | Apache2 | php 50.X | MySQL 4.1
Projekt: Deutsch Translator 2006 - 40%
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
strife
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

Ostrzeżenie: (0%)
-----


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!


--------------------
Go to the top of the page
+Quote Post
dexter_m
post
Post #3





Grupa: Zarejestrowani
Postów: 139
Pomógł: 0
Dołączył: 16.07.2005

Ostrzeżenie: (10%)
X----


Jakiejś specjalnej różnicy to nie widzę, mniej kodu i tyle. Ale chyba już rozumiem. Dzięki! winksmiley.jpg

Ten post edytował dexter_m 7.08.2005, 16:22:10


--------------------
Warsztat: Windows XP | Apache2 | php 50.X | MySQL 4.1
Projekt: Deutsch Translator 2006 - 40%
Go to the top of the page
+Quote Post
Speedy
post
Post #4





Grupa: Zarejestrowani
Postów: 651
Pomógł: 28
Dołączył: 4.12.2004

Ostrzeżenie: (0%)
-----


Stosowanie kropki (ech nie pamiętam fachowej nazwy, ale wiem , że takowa istnieje smile.gif )
do łączenia ciągów przyspiesza działanie kodu .


--------------------
Sygnatura niezgodna z regulaminem.
Go to the top of the page
+Quote Post
dexter_m
post
Post #5





Grupa: Zarejestrowani
Postów: 139
Pomógł: 0
Dołączył: 16.07.2005

Ostrzeżenie: (10%)
X----


No, przekonaliście mnie, że lepiej stosować operator łączenia ciągów (kropkę).

Pozdrawiam, dexter. smile.gif


--------------------
Warsztat: Windows XP | Apache2 | php 50.X | MySQL 4.1
Projekt: Deutsch Translator 2006 - 40%
Go to the top of the page
+Quote Post
matid
post
Post #6





Grupa: Zarejestrowani
Postów: 362
Pomógł: 0
Dołączył: 18.02.2004
Skąd: Knurów

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
mike
post
Post #7





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
matid
post
Post #8





Grupa: Zarejestrowani
Postów: 362
Pomógł: 0
Dołączył: 18.02.2004
Skąd: Knurów

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
dexter_m
post
Post #9





Grupa: Zarejestrowani
Postów: 139
Pomógł: 0
Dołączył: 16.07.2005

Ostrzeżenie: (10%)
X----


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

Ten post edytował dexter_m 7.08.2005, 19:39:11


--------------------
Warsztat: Windows XP | Apache2 | php 50.X | MySQL 4.1
Projekt: Deutsch Translator 2006 - 40%
Go to the top of the page
+Quote Post
mike
post
Post #10





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
dexter_m
post
Post #11





Grupa: Zarejestrowani
Postów: 139
Pomógł: 0
Dołączył: 16.07.2005

Ostrzeżenie: (10%)
X----


Aha, rozumiem.
Dzięki! smile.gif


--------------------
Warsztat: Windows XP | Apache2 | php 50.X | MySQL 4.1
Projekt: Deutsch Translator 2006 - 40%
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 07:15