![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 442 Pomógł: 4 Dołączył: 28.12.2008 Skąd: Warszawa Ostrzeżenie: (20%) ![]() ![]() |
Witam dopiero zaczynam php obiektowy i mam pewnie probelm chce zrobic zwykłą pętle tak dla przykładu ale nie wiem jak przeszukąłem już całe google (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) i czytałem z 6 h dzisiaj (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) i nic nie czaje co z tym $this może mi ktoś to w 4 zdaniach wytłumaczyć będe wdzięczny o to kod:
Kod <?php class Klasa { public $x; public function petla() { for ($x=1; $x<=10; $x++) return $this -> x; } $Klasa = new Klasa; $Klasa ->petla; echo "wynik wynosi{$Klasa->petla}"; ?> no taki błąd Kod Parse error: syntax error, unexpected T_VARIABLE, expecting T_FUNCTION in
Ten post edytował kielich 11.04.2009, 13:37:13 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 385 Pomógł: 26 Dołączył: 22.03.2008 Skąd: TM Ostrzeżenie: (0%) ![]() ![]() |
Wydaje mi się że odwołujesz się poza klasą do zmiennej składowej private, zmień private na public może (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Tak wogóle jakiś błąd dostajesz?
|
|
|
![]()
Post
#3
|
|
Newsman Grupa: Moderatorzy Postów: 2 033 Pomógł: 290 Dołączył: 21.12.2007 Skąd: Łódź ![]() |
$Klasa ->petla();
Nawiasy. unexpected T_VARIABLE, expecting T_FUNCTION = niespodziewane odwołanie do zmiennej, spodziewana funkcja Ten post edytował blooregard 11.04.2009, 13:46:22 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 442 Pomógł: 4 Dołączył: 28.12.2008 Skąd: Warszawa Ostrzeżenie: (20%) ![]() ![]() |
poprawiłem na
Kod $Klasa = new Klasa; $Klasa ->petla(); echo "wynik wynosi{$Klasa->petla}"; dalej to samo kurcze nie wiem czy to ma sens pisania obiektowo (IMG:http://forum.php.pl/style_emoticons/default/co_jest.gif) Ten post edytował kielich 11.04.2009, 13:53:19 |
|
|
![]()
Post
#5
|
|
Newsman Grupa: Moderatorzy Postów: 2 033 Pomógł: 290 Dołączył: 21.12.2007 Skąd: Łódź ![]() |
Cytat dalej to samo Tak, jak mówisz:
Dalej ten sam błąd, tylko w innym miejscu. Jak wywołujesz funkcję, to dajesz NAWIASY po jej nazwie - po tym interpreter PHP odróżnia funkcję od zmiennej. Może lepiej zacznij od podstaw, zanim się zaczniesz bawić z OOP |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 442 Pomógł: 4 Dołączył: 28.12.2008 Skąd: Warszawa Ostrzeżenie: (20%) ![]() ![]() |
No co do podstaw to strukturalnie już pisze bardzo długo i chciałem spróbować obiektowo
ps. umiesz pocieszyć (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) a poprawiłem bład tak jak kazałeś i dalej cos nie gra cos jest nie tak |
|
|
![]()
Post
#7
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat to strukturalnie już pisze bardzo długo Można bardzo długo wyprzedzać na podwójnej ciągłej i nie wiedzieć, że to niezgodne z przepisami. (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Cytat dalej cos nie gra cos jest nie tak Żadnych błędów, nic? Co się dzieje? |
|
|
![]()
Post
#8
|
|
Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 442 Pomógł: 4 Dołączył: 28.12.2008 Skąd: Warszawa Ostrzeżenie: (20%) ![]() ![]() |
no bład dalej tan sam (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Kod Parse error: syntax error, unexpected T_VARIABLE, expecting T_FUNCTION in ............ on line 14
|
|
|
![]()
Post
#10
|
|
Newsman Grupa: Moderatorzy Postów: 2 033 Pomógł: 290 Dołączył: 21.12.2007 Skąd: Łódź ![]() |
Cytat No co do podstaw to strukturalnie już pisze bardzo długo i chciałem spróbować obiektowo No to pamietaj, że (strukturalnie) funkcja(); == (obiektowo) $obiekt->funkcja(); Cytat a poprawiłem bład tak jak kazałeś i dalej cos nie gra cos jest nie tak Ale co? Jakis komunikat błędu ? A, już wiem: brakuje Ci zamykającego nawiasu } po definicji klasy Ten post edytował blooregard 11.04.2009, 14:06:03 |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 442 Pomógł: 4 Dołączył: 28.12.2008 Skąd: Warszawa Ostrzeżenie: (20%) ![]() ![]() |
No chociaż jeden ...(IMG:http://forum.php.pl/style_emoticons/default/smile.gif) a nie już ze zle (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ale petla sie nie wykonuje :/
wyswietla tylko wynik wynosi Ten post edytował kielich 11.04.2009, 14:10:14 |
|
|
![]()
Post
#12
|
|
Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 442 Pomógł: 4 Dołączył: 28.12.2008 Skąd: Warszawa Ostrzeżenie: (20%) ![]() ![]() |
No kod taki jak był poprzedni ale kiedy zrobie tak
Kod <?php
class Klasa { public $x; public function petla() { $this ->x=2; return $this -> x; } } $Klasa = new Klasa; $Klasa ->petla(); echo "wynik wynosi{$Klasa->petla()}"; ?> to dział normalnie piotrooo89 to pokaz twój kod tzn mój ale twój :) |
|
|
![]()
Post
#14
|
|
Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
zobacz pare postów wyżej...
|
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 442 Pomógł: 4 Dołączył: 28.12.2008 Skąd: Warszawa Ostrzeżenie: (20%) ![]() ![]() |
No nie działa ja chce to wyswietlic na nowym obiektem a nie tak jak ty
|
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 302 Pomógł: 18 Dołączył: 10.03.2008 Skąd: Dębno Ostrzeżenie: (0%) ![]() ![]() |
A nie trzeba tu konstruktora zbudować ?
|
|
|
![]()
Post
#17
|
|
Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
|
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 35 Pomógł: 0 Dołączył: 27.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
No bo do zmiennej $x nie przypisujesz nic! Zwracasz $this->x ktora nie ma wartosci...
|
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 442 Pomógł: 4 Dołączył: 28.12.2008 Skąd: Warszawa Ostrzeżenie: (20%) ![]() ![]() |
No dokłądnie o to mi chodziło a możesz mi powiedzieć dlaczego tak $s .= $x; dlaczego z " kropką"
I jesli możesz mi wyjaśnic co z tym $this |
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 35 Pomógł: 0 Dołączył: 27.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Cytat No dokłądnie o to mi chodziło a możesz mi powiedzieć dlaczego tak $s .= $x; dlaczego z " kropką" do zmiennej $s dopisuje zmienna $x; to taki sam zapis jak $s = $s.$x; I przy okazji, szybki powrot do pierwszego kodu: Kod <?php class Klasa { public $x; public function petla() { for ($x=1; $x <= 10; $x++) return $this->x; } } $Klasa = new Klasa; echo "wynik wynosi{$Klasa->petla()}"; ?> W iteracji zwiekszasz zmiena $x a zwracasz $this->x. To dwie rozne sprawy. Ten post edytował adrian.p 11.04.2009, 14:47:09 |
|
|
![]()
Post
#21
|
|
Newsman Grupa: Moderatorzy Postów: 2 033 Pomógł: 290 Dołączył: 21.12.2007 Skąd: Łódź ![]() |
$s .=$x to to samo co $s = $s . $x; czyli skrócna forma operatora konkatenacji (łączenia stringów)
$this to odwołanie do obiektu "wewnątrz" niego samego. |
|
|
![]()
Post
#22
|
|
Grupa: Zarejestrowani Postów: 320 Pomógł: 53 Dołączył: 18.09.2007 Skąd: Radom Ostrzeżenie: (0%) ![]() ![]() |
$s .= $x; dopisujesz do zmiennej $s wartości $x(nie nadpisujesz zmiennej) podstawy PHP
$this - odwołujesz sie do zmiennych klasy, do funkcji zawartych w klasie(wewnatrz klasy) Musisz jeszcze sporo poczytac o oop http://pl.php.net/oop najważniejsze podstawy Ten post edytował artur_dziocha 11.04.2009, 14:48:39 |
|
|
![]()
Post
#23
|
|
Grupa: Zarejestrowani Postów: 442 Pomógł: 4 Dołączył: 28.12.2008 Skąd: Warszawa Ostrzeżenie: (20%) ![]() ![]() |
OK czyli ten kod jest prawidłowy??
Kod <?php class Klasa { public function petla() { $a=56; $b=48; $wynik=$a+$b/3; if ($wynik<100){ echo"liczba jest mniejsza od 100 "; } return $wynik; } } $kl = new Klasa(); echo " <br />a wynik wynosi {$kl -> petla()}"; ?> A powiedz mi jeszcze kiedy i jak używać tego $this bo wszedzie jest napisane to co ty mi powiedziałeś i już mykam (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Tu jest dobry przykład no ale go zbytnio nie rozumiem w personaliach (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Kod <?php
class osoba { public $imie; // 1 public $nazwisko; public function ustawPersonalia($imie, $nazwisko) // 2 { $this -> imie = $imie; // 3 $this -> nazwisko = $nazwisko; } // end ustawPersonalia(); public function personalia() { return $this -> imie.' '.$this -> nazwisko; } // end personalia(); } $osoba = new osoba; // 4 $osoba -> ustawPersonalia('Adam', 'Kowalski'); // 5 echo $osoba -> personalia(); // 6 ?> |
|
|
![]()
Post
#24
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat A powiedz mi jeszcze kiedy i jak używać tego $this bo wszedzie jest napisane to co ty mi powiedziałeś $this, to odniesienie do bieżącej instancji klasy. Czyli w Twoim przykładzie, to by było coś takiego:
Klasę możesz przyporządkować do dowolnej zmiennej; $this używamy wewnątrz klas, aby odnieść się do samej siebie. |
|
|
![]()
Post
#25
|
|
Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
|
|
|
![]()
Post
#26
|
|
Grupa: Zarejestrowani Postów: 442 Pomógł: 4 Dołączył: 28.12.2008 Skąd: Warszawa Ostrzeżenie: (20%) ![]() ![]() |
OK myśle że tak no ale ciągle jest mniejsza od nawet jak dam $a=200 i $b=200
Kod <?php
class Klasa { public function petla() { $a=59; $b=50; $wynik=$a+$b; return $wynik; } } try { if($wynik <= 100) { throw new Exception('liczba jest mniejsza od 100'); } echo 'blbalbalb '; } catch(Exception $w) { echo $w -> getMessage(); } $cos = new Klasa; echo " i wynosi: {$cos->petla()}"; ?> |
|
|
![]()
Post
#27
|
|
Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
tak ma być:
|
|
|
![]()
Post
#28
|
|
Grupa: Zarejestrowani Postów: 442 Pomógł: 4 Dołączył: 28.12.2008 Skąd: Warszawa Ostrzeżenie: (20%) ![]() ![]() |
OK teraz rozumiem Wielkie thx a mam takie pytanie czy można zmienne przekazywać między funkcjami??
|
|
|
![]()
Post
#29
|
|
Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
można za pomocą $this.
|
|
|
![]()
Post
#30
|
|
Grupa: Zarejestrowani Postów: 442 Pomógł: 4 Dołączył: 28.12.2008 Skąd: Warszawa Ostrzeżenie: (20%) ![]() ![]() |
Dzięki Ci za pomoc tylko ty praktycznie mi pomagasz w tym poście czy mógłbyś pokrótce przedstawić jak to ma wyglądać (krótki kod) będę wdzięczny
|
|
|
![]()
Post
#31
|
|
Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
ale co dokladnie chcesz wiedzieć? co mam pokazać?
|
|
|
![]()
Post
#32
|
|
Grupa: Zarejestrowani Postów: 442 Pomógł: 4 Dołączył: 28.12.2008 Skąd: Warszawa Ostrzeżenie: (20%) ![]() ![]() |
jak zmienne przekazywać między funkcjami
|
|
|
![]()
Post
#33
|
|
Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
powiedzmy że mamy taki konstruktor:
tak można przekazywać. |
|
|
![]()
Post
#34
|
|
Grupa: Zarejestrowani Postów: 442 Pomógł: 4 Dołączył: 28.12.2008 Skąd: Warszawa Ostrzeżenie: (20%) ![]() ![]() |
OK Dzięki za wszystko POZDRO dla Ciebie
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 7.10.2025 - 01:26 |