Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> PHP4 referencje do obiektu
ersiv
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 11.04.2007
Skąd: Kraków

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


  1. <?php
  2. function dump($var) {
  3. echo '<pre>';
  4. var_dump($var);
  5. echo '</pre>';
  6. }
  7.  
  8. class Engine {
  9. var $page;
  10. function Engine() {}
  11. function setPage() {$this->page = new Page();}
  12. function getPage() {return $this->page;}
  13. function getPageID() {return $this->page->getID();}
  14. }
  15.  
  16. class Page {
  17. var $id;
  18. function Page() {}
  19. function getID() {return $this->id;}
  20. function setID($id) {$this->id = $id;}
  21. }
  22.  
  23. $e = new Engine();
  24. $e->setPage();//dodaje page do engine
  25.  
  26. $p = $e->getPage();//pobieram dodany obiekt page
  27. $p->setID(999);//zmieniajac ID chce aby w Engine tez sie zmienil
  28.  
  29. dump($p->getID());
  30. dump($e->getPageID());
  31. ?>


Coś takiego uruchomione pod PHP5 działa ok, pod PHP4 modyfikując zwrócony obiekt, nie zmienia obiektu Page pobranego z Engine... pod PHP4 nie pisałem, a teraz muszę :/ i nie wiem jak sobie z tym poradzić
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
Crozin
post
Post #2





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

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


W PHP5 przypisując instancję objektu do zmiennej tworzona jest na niej instancja, która jest jednocześnie referencją. W PHP4 jest natomast tworzona kopia:
  1. <?
  2.  
  3. $p &= $e->getPage();
  4. ?>
Go to the top of the page
+Quote Post
ersiv
post
Post #3





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 11.04.2007
Skąd: Kraków

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


Cytat(Crozin @ 19.04.2008, 18:26:26 ) *
W PHP5 przypisując instancję objektu do zmiennej tworzona jest na niej instancja, która jest jednocześnie referencją. W PHP4 jest natomast tworzona kopia:
  1. <?
  2.  
  3. $p &= $e->getPage();
  4. ?>


hmmm... nie działa to u mnie w ten sposób, z dobrej strony '=' dałeś '&' questionmark.gif
wywala mi fatal errora
  1. <?php
  2. $p &= $e->getPage();
  3. ?>

po czymś takim p jest typu int i =0 ...i przez to ten fatal error :/
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


$x &= $y to to samo co $x = $x & $y (binarne AND)

tez nie pamietam php4 tongue.gif


  1. <?php
  2. $p = &$e->getPage();
  3. function &getPage(){
  4.  return &$this->page;
  5. }
  6. ?>

ktores z '&' nie zadzialaja (parse error), tak ze posprawdzaj


edit: znalazlem w koncu: http://pl2.php.net/manual/en/language.references.php

Ten post edytował dr_bonzo 19.04.2008, 17:53:59


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
Crozin
post
Post #5





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

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


Nie mam PHP4 więc sprawdzić nie mam za bardzo jak - ale skoro sam wpadłeś na to, że & może być z złej strony to dlaczego nie spawdziłeś czy =& nie będzie działać? smile.gif

EDIT:
dr_bonzo mnie uprzedił winksmiley.jpg

Ten post edytował Crozin 19.04.2008, 17:55:21
Go to the top of the page
+Quote Post
ersiv
post
Post #6





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 11.04.2007
Skąd: Kraków

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


Cytat(Crozin @ 19.04.2008, 18:54:41 ) *
Nie mam PHP4 więc sprawdzić nie mam za bardzo jak - ale skoro sam wpadłeś na to, że & może być z złej strony to dlaczego nie spawdziłeś czy =& nie będzie działać? smile.gif

EDIT:
dr_bonzo mnie uprzedił winksmiley.jpg

wow bez przesady ;P nie uważam się aż za takiego matoła biggrin.gif


Cytat(dr_bonzo @ 19.04.2008, 18:52:36 ) *
$x &= $y to to samo co $x = $x & $y (binarne AND)

tez nie pamietam php4 tongue.gif
  1. <?php
  2. $p = &$e->getPage();
  3. function &getPage(){
  4.  return &$this->page;
  5. }
  6. ?>

ktores z '&' nie zadzialaja (parse error), tak ze posprawdzaj
edit: znalazlem w koncu: http://pl2.php.net/manual/en/language.references.php


dzięki!
  1. <?php
  2. $p = &$e->getPage();
  3. function &getPage(){
  4.  return $this->page;
  5. }
  6. ?>

taka kombinacja działa winksmiley.jpg
trochę szperałem i nie znalazłem wcześniej że w metodzie też trzeba zadeklarować referencję zwraca

dzięki jeszcze raz, za szybką reakcje

pzdr
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: 21.08.2025 - 09:02