Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Użycie { w ciągu znaków
zbygal83
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 15.01.2011

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


W książce, którą obecnie studiuję mam podany przykład:
CODE
public function sayHello() {
echo "Cześć {$this->getName()}";
}

Wiem że zapis echo "Cześć {$this->getName()}"; jest jednoznaczny z echo "Czesc " . $this->getName();. Nigdy wcześniej się z tym nie spotkałem, więc chciałbym wiedzieć jak taka składnia się nazywa i z czego wynika. Może pytanie banalne, ale jak chłonę wiedzę to nie lubię zostawiać czegoś niedopowiedzianego. I jeszcze jedno pytanie: który z tych zapisów jest częściej stosowany przez doświadczonych programistów?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
cycofiasz
post
Post #2





Grupa: Zarejestrowani
Postów: 711
Pomógł: 127
Dołączył: 5.07.2008
Skąd: Łódź

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


Complex (curly) syntax

http://www.php.net/manual/en/language.type...parsing.complex
Go to the top of the page
+Quote Post
nekomata
post
Post #3





Grupa: Zarejestrowani
Postów: 314
Pomógł: 44
Dołączył: 12.11.2010
Skąd: UK

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


Ja osobiście nie lubię stosować takiego zapisu ponieważ jeśli używasz cudzysłowia(") to parser przeszukuje całą zawartość w poszukiwaniu zmiennych a jeśli używasz apostrofu (') to paser traktuje całą zawartość jako tekst.
Czyli (dla przykladu użyje Marka) :
  1. echo "Cześć {$this->getName()}"; //wyświetli Cześć Marek
  2. echo "Czesc " . $this->getName(); //wyświetli Cześć Marek
  3. // A z apostrofem jest tak
  4. echo 'Cześć {$this->getName()}'; //wyświetli Cześć {$this->getName()}
  5. echo 'Czesc ' . $this->getName(); //wyświetli Cześć Marek

Według mnie opłaca się używać apostrofów, czemu?Każda setna sekundy się liczy.
Go to the top of the page
+Quote Post
vermis
post
Post #4





Grupa: Zarejestrowani
Postów: 279
Pomógł: 56
Dołączył: 3.06.2010
Skąd: Tarnowskie Góry

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


Cytat(nekomata @ 19.01.2011, 20:09:30 ) *
Według mnie opłaca się używać apostrofów, czemu?Każda setna sekundy się liczy.

Taaaa a potem i tak korzysta się z frameworków, ORM'ów, Smartów i innych pożeraczy czasu procesora i pamięci, bo tak jest wygodniej.
Ale w teorii masz rację (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
Mephistofeles
post
Post #5





Grupa: Zarejestrowani
Postów: 1 182
Pomógł: 115
Dołączył: 4.03.2009
Skąd: Myszków

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


Nawet teoria mówi, że to nie ma znaczenia. Mimo to ja i tak używam wersji "optymalnej", z przyzwyczajenia.
Go to the top of the page
+Quote Post
Crozin
post
Post #6





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Cytat
Każda setna sekundy się liczy.
Łączenie tekstu na poziomie PHP jest z reguły wolniejsze, niż skorzystanie z dodatkowego parsera na poziomie C. Więc jak Ci tak na tych setnych częściach sekundy bardzo zależy to zacznij korzystać z cudzysłowów.

Ten post edytował Crozin 19.01.2011, 20:36:47
Go to the top of the page
+Quote Post
zbygal83
post
Post #7





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 15.01.2011

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


@nekomata: wiem o tym, że parser przeszukuje "" pod względem zmiennych i że obciąża to procesor. Pytałem, bo na początku nauki chciałbym przyswoić sobie dobre nawyki programistyczne, a o takie muszę pytać ludzi siedzących w programowaniu.

@Mephistofeles: co dla Ciebie znaczy wersja "optymalna"?
Go to the top of the page
+Quote Post
nekomata
post
Post #8





Grupa: Zarejestrowani
Postów: 314
Pomógł: 44
Dołączył: 12.11.2010
Skąd: UK

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


Cytat(Crozin @ 19.01.2011, 20:36:19 ) *
Łączenie tekstu na poziomie PHP jest z reguły wolniejsze, niż skorzystanie z dodatkowego parsera na poziomie C. Więc jak Ci tak na tych setnych częściach sekundy bardzo zależy to zacznij korzystać z cudzysłowów.

Szczerze mówiąc nie byłem pewny więc sprawdziłem.Używając :
  1. <!-- put this at the top of the page -->
  2. <?php
  3. $mtime = microtime();
  4. $mtime = explode(" ",$mtime);
  5. $mtime = $mtime[1] + $mtime[0];
  6. $starttime = $mtime;
  7. ;?>
  8.  
  9. <!-- put other code and html in here -->
  10. <?php
  11.  
  12. $marek = 'zygmunt';
  13. $zosia = 'kunegunda';
  14. $kruk = 'maciej';
  15.  
  16. while($i <100000){
  17. echo $marek.' posiada 15 tysięcy pomarańczowych żołędzi, jednak owe zostały mu skradzione.'.$zosia.'Stara się pomoć zygmuntowi, jednak '.$kruk.' się tylko smieję bo wie że '.$marek.' tylko schował zołedzie w puszcze po czekoladzie i zakopał w rzece.<br/>';
  18. $i++;
  19. }
  20. ?>
  21. <!-- put this code at the bottom of the page -->
  22. <?php
  23. $mtime = microtime();
  24. $mtime = explode(" ",$mtime);
  25. $mtime = $mtime[1] + $mtime[0];
  26. $endtime = $mtime;
  27. $totaltime = ($endtime - $starttime);
  28. echo "This page was created in ".$totaltime." seconds";
  29. ;?>

wynik..(pomijając tonę textu)
This page was created in 50.307214975357 seconds
a wersja z cudzysłowem czyli
  1. <!-- put this at the top of the page -->
  2. <?php
  3. $mtime = microtime();
  4. $mtime = explode(" ",$mtime);
  5. $mtime = $mtime[1] + $mtime[0];
  6. $starttime = $mtime;
  7. ;?>
  8.  
  9. <!-- put other code and html in here -->
  10. <?php
  11.  
  12. $marek = 'zygmunt';
  13. $zosia = 'kunegunda';
  14. $kruk = 'maciej';
  15.  
  16. while($i <100000){
  17. echo "$marek posiada 15 tysięcy pomarańczowych żołędzi, jednak owe zostały mu skradzione.$zosia Stara się pomoć zygmuntowi, jednak $kruk się tylko smieję bo wie że $marek tylko schował zołedzie w puszcze po czekoladzie i zakopał w rzece.<br/>';
  18. $i++;
  19. }
  20. ?>
  21. <!-- put this code at the bottom of the page -->
  22. <?php
  23. $mtime = microtime();
  24. $mtime = explode(" ",$mtime);
  25. $mtime = $mtime[1] + $mtime[0];
  26. $endtime = $mtime;
  27. $totaltime = ($endtime - $starttime);
  28. echo "This page was created in ".$totaltime." seconds";
  29. ;?>

This page was created in 50.989140033722 seconds

Odpaliłem to na localhoscie i mój komputer jest już starszego pokolenia ale.. wychodzi praktycznie to samo. różnica to tylko 0.6 sekundy.
Jednak ja i tak zostanę przy apostrofach.Czemu?Bo mi ładniej koloruję wszystko w dreamweaverze.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 08:10