![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 27.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
Witajcie! Obecnie raczkuję w programowaniu OOP w PHP i mam problem: mój program powinien wypisywać na ekranie sumę dwóch liczb, np. 2+3=5. Problem w tym, że otrzymuję ciągle wynik 0 i nie wiem, czemu. W programie użyłem funkcji __toString by wyświetlić na ekranie pola klasy Test4.
Program wygląda tak: <?php class Test4 { var $a; var $b; public function __toString($zmienna) { $zmienna=$this->a.'+'.$this->b.'='.$a+$b; return $zmienna; } public function ustawZmienne($a, $b) { if (is_numeric($element)) { $a->$this->a=$a; $b->$this->b=$b; return true; } else return false; } } $test=new Test4(); $test->ustawZmienne(4,2); echo $test->__toString($zmienna); ?> |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 623 Pomógł: 79 Dołączył: 16.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Jakiś chyba nowy PHP wyszedł ![]() Co robi $a->$this ? Chciałeś chyba $this->a=$a; Plus - gdzie masz zdefiniowaną zmienną $element, którą używasz? Update: $zmienna=$this->a.'+'.$this->b.'='.$a+$b Tak się łączy łańcuchy (tekst), Ty chcesz po prostu: return $this->a+$this->b; Zanim zabierzesz się za OOP powinieneś poznać podstawy (zmienne, zasięg, operatory, funkcje). Ten post edytował konrados 27.05.2012, 12:29:22 |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 709 Pomógł: 176 Dołączył: 24.10.2010 Ostrzeżenie: (0%) ![]() ![]() |
Wstawiając kod na forum użyj tagów będzie bardziej czytelne. Druga rzecz to metoda __toString to metoda magiczna więc jej wywoływanie jest kontrolowane przez php ty tylko musisz zrobić:
-------------------- http://d3ut3r.wordpress.com/ | mysql_* jest przestarzałe UŻYWAJ PDO!
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 27.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za pomoc. Poprawiłem program i teraz działa jak chcę.
<?php class Test4 { var $a; var $b; public function __toString($a, $b) { $suma=$this->a+$this->b; return $suma; } public function ustawZmienne($a, $b) { if (is_numeric($a) and is_numeric($b)) { $this->a=$a; $this->b=$b; echo $a."+".$b."="; return true; } else return false; } } $test=new Test4(); $test->ustawZmienne(4,5); echo $test->__toString(4,3); ?> |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
__toString() jest metodą, która nie przyjmuje żadnych argumentów.
PS. Używaj BBCode. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.07.2025 - 04:13 |