Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP5] - dziwna składnia
dzesi
post 9.10.2007, 20:08:49
Post #1





Grupa: Zarejestrowani
Postów: 235
Pomógł: 0
Dołączył: 3.05.2006

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


Witam was jeśli ktos mi odpowie to prosze wykasowac ten temat . Bo będzie chyba niepotrzeby , pisze dla tego ze nie wiem co znacza {} w manualu nic nie znalazłem albo zle patrzałem
przykład
  1. <?php
  2. class CdProduct {
  3. public $playLength;
  4. public $title;
  5. public $producerMainName;
  6. public $producerFirstName;
  7. public $price;
  8.  
  9. function __construct(  $title, $firstName, 
  10. $mainName, $price, 
  11. $playLength ) { 
  12. $this->title  = $title;
  13. $this->producerFirstName = $firstName;
  14. $this->producerMainName = $mainName;
  15. $this->price  = $price;
  16. $this->playLength = $playLength;
  17.  
  18. }
  19.  
  20. function getPlayLength() {
  21. return $this->playLength;
  22. }
  23.  
  24. function getSummaryLine() {
  25. $base = "$this->title ( $this->producerMainName, ";
  26. $base .= "$this->producerFirstName )"; 
  27. $base .= ": czas nagrania - $this->playLength";
  28. return $base;
  29. }
  30.  
  31. function getProducer() {
  32. return "{$this->producerFirstName}".
  33.  " {$this->producerMainName}";
  34. }
  35. }
  36.  
  37. class BookProduct {
  38. public $numPages;
  39. public $title;
  40. public $producerMainName;
  41. public $producerFirstName;
  42. public $price;
  43.  
  44. function __construct(  $title, $firstName, 
  45. $mainName, $price, 
  46. $numPages ) { 
  47. $this->title  = $title;
  48. $this->producerFirstName = $firstName;
  49. $this->producerMainName = $mainName;
  50. $this->price  = $price;
  51. $this->numPages = $numPages;
  52. }
  53.  
  54. function getNumberOfPages() {
  55. return $this->numPages;
  56. }
  57.  
  58. function getSummaryLine() {
  59. $base = "$this->title ( $this->producerMainName, ";
  60. $base .= "$this->producerFirstName )"; 
  61. $base .= ": liczba stron - $this->numPages";
  62. return $base;
  63. }
  64.  
  65. function getProducer() {
  66. return "{$this->producerFirstName}".
  67.  " {$this->producerMainName}";
  68. }
  69.  
  70. }
  71.  
  72. $product1 = new BookProduct( "Moja Antonia", "Willa", "Cather", 59.99, 300 );
  73. $product2 =  new CdProduct( "Exile on Coldharbour Lane", 
  74. "The", "Alabama 3", 25.99, 60.33 );
  75.  
  76. print "Autor: ".$product1->getProducer()."\n";
  77. print "Liczba stron:  ".$product1->getNumberOfPages()."\n";
  78. print "Opis:  ".$product1->getSummaryLine()."\n";
  79. print "Wykonawca: ".$product2->getProducer()."\n";
  80. print "Czas nagrania: ".$product2->getPlayLength()."\n";
  81. print "Opis:  ".$product2->getSummaryLine()."\n";
  82. ?>

Co maja oznaczać return "{$this->producerFirstName}".
" {$this->producerMainName}";
{} w returnie , echo itd bo te nawiasy wogole sie nie wyswietlaja wieć jaka one funkcje pełnia ?
Powód edycji: dodalem tag (cysiaczek)
Go to the top of the page
+Quote Post
pojas
post 9.10.2007, 20:21:35
Post #2





Grupa: Zarejestrowani
Postów: 53
Pomógł: 0
Dołączył: 31.03.2006

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


Według mnie nawiasy klamrowe oddzielają nazwę zmiennej od tekstu, który jest przy niej.

  1. <?php
  2.  
  3. $iLiczba = 13;
  4.  
  5. echo("Moja liczba to $iLiczba\n<br>"); // -> Moja liczba to 13
  6.  
  7. echo("Moja liczba to $iLiczbanascie\n<br>"); // -> Moja liczba to
  8.  
  9. echo("Moja liczba to {$iLiczba}naście"); // -> Moja liczba to 13naście
  10.  
  11. ?>


Jednak nie przeczytałem tego w poradniku/manualu czy książce, ale sam wydedukowałem, więc...
Go to the top of the page
+Quote Post
dzesi
post 9.10.2007, 20:55:42
Post #3





Grupa: Zarejestrowani
Postów: 235
Pomógł: 0
Dołączył: 3.05.2006

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


Tez sam do tego doszedłem ,ale nigdzie na ten temat nic nie znalazłem , czy to nie dziwne ?.Nadal bede szukał bo to dość interesujące i wiecej coś o tym sie dowiedzieć by można
Go to the top of the page
+Quote Post
em1X
post 9.10.2007, 22:59:38
Post #4





Grupa: Zarejestrowani
Postów: 984
Pomógł: 41
Dołączył: 16.03.2002
Skąd: Płock

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


ale co w tym dziwnego? wszystko jest opisane w manualu


--------------------
eh, co polska wódka to polska wódka
Go to the top of the page
+Quote Post
Cysiaczek
post 10.10.2007, 06:35:06
Post #5





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




@dzesi - poco tworzyć topic, który chcesz za chwilę usuwać?

Przenoszę na Przedszkole


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
dzesi
post 10.10.2007, 08:49:37
Post #6





Grupa: Zarejestrowani
Postów: 235
Pomógł: 0
Dołączył: 3.05.2006

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


Po to żeby sie dowiedzieć , nie sądzę żeby komuś było to potrzebne smile.gif
Go to the top of the page
+Quote Post
Zick4
post 12.10.2007, 22:28:20
Post #7





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 12.10.2007

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


Dobra po krótce wyjaśnię po co są magiczne { oraz }.
  1. <?php
  2. echo "jakiś text plepleple $obiekt->zmienna jakiś text plepleple ";
  3. ?>

Ten kod działa tak: znak cala czyli " informuje interpreter php ahaaa czyli teraz będzie łańcuch o kurde w dodatku muszę go dokładnie przeanalizować, bo może sa w nim zmienne ale narazie wyswietlam ciąg. ooo znak dolara świetnie mamy zmienną ok znalazłem całą nazwę zmiennej $obiekt i pod nią podstawię wartość kryjącą się pod nią, a potem wyświetlę reszte łańcucha. Zatem PHP nie uważa, że $obiekt->zmienna to zmienna, a uważa samo $obiekt za zmienną. Aby zmienić to standardowe myślenie musimy użyć właśnie { oraz }. Gdy teraz damy:
  1. <?php
  2. echo "jakiś text plepleple {$obiekt->zmienna} jakiś text plepleple ";
  3. ?>

To PHP się domyśli, żę PEŁNĄ nazwa zmiennej to $obiekt->zmienna i poprawnie ją obsłuży.
Go to the top of the page
+Quote Post
mls
post 12.10.2007, 23:49:41
Post #8





Grupa: Zarejestrowani
Postów: 677
Pomógł: 89
Dołączył: 31.08.2003
Skąd: Warszawa

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


Oczywiście to samo możnaby zapisać w postaci
  1. <?php
  2. return $this->producerFirstName . ' ' . $this->producerMainName;
  3. ?>

i byłoby to lepszym rozwiązaniem, jeśli chodzi o wydajność...


--------------------
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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 08:59