![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 27 Pomógł: 0 Dołączył: 19.02.2004 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Zacząłem sie bawić pisaniem obiektowo, ale mam małe pytanko na które nie moge nigdzie znaleść odpowiedzi. Chodzi mi o to zeby jakaś klasa przypisywała dwóm zmiennym wartości a potem żebym mógł już poza klasą, w normalnym kodzie wywołać te 2 zmienne. Dla niekumatych podam prosty przykład (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) [php:1:48b142dc48]<?php class test { function test() { // tutaj bardzo skomplikowany kod który przypisuje dwom zmiennym wartości $test1 = "pierwszy test"; $test2 = "drógi test"; } } $start = new test(); //i teraz poza klasami wywołanie dwóch zmiennych echo ("Zmienna 1 ma wartość: $test1 w zmienna 2: $test2"); ?>[/php:1:48b142dc48] Z góry dziękuje 8) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 660 Pomógł: 0 Dołączył: 28.08.2002 Skąd: Starachowice Ostrzeżenie: (0%) ![]() ![]() |
Cytat Zacząłem sie bawić pisaniem obiektowo (...)
Programowanie zorientowane obiektowo to nie tylko wykorzystywanie klas, a cała filozofia programowania (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Co do zwracania zmiennych - stwórz metodę, która będzie te zmienne zwracała. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 27 Pomógł: 0 Dołączył: 19.02.2004 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
Cytat Programowanie zorientowane obiektowo to nie tylko wykorzystywanie klas, a cała filozofia programowania (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Wiem nie musisz mi tłumaczyć, nie jestem total lamerem (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) A co do tej metody, to jak ona ma wyglądać bo nie mam żadnego pomysłu :cry: |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 405 Pomógł: 1 Dołączył: 19.09.2003 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
metoda mogłaby mieć taką postać:
[php:1:99046703a7]<?php class klasa { var $foo = 'bar'; function GetFoo() { return $this -> foo; } } $mojobiekt = new klasa; echo $mojobiekt -> GetFoo(); ?>[/php:1:99046703a7] |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 216 Pomógł: 0 Dołączył: 9.08.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
musi byc metoda ?
nie mozna tak ? [php:1:bc04230b27]<?php class test { function test() { $h = "Bardzo fajny text"; } } $test = new test(); echo $test->h; ?>[/php:1:bc04230b27] |
|
|
![]()
Post
#6
|
|
Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
można, tj. jest to poprawne składniowo. Ale ogólnie mówiąc - jest to nie zalecene.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 27 Pomógł: 0 Dołączył: 19.02.2004 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
Cytat musi byc metoda ?
nie mozna tak ? [php:1:7f45b83ba6]<?php class test { function test() { $h = "Bardzo fajny text"; } } $test = new test(); echo $test->h; ?>[/php:1:7f45b83ba6] Hmmm 100 razy probowałem i pusty ekran :?: A co do metody Joja: a jeśli chciałbym zrobić by jedna funkcja zwracała 2 albo więcej zmiennych? Mam robić dla każdej osobne funkcje?? |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 59 Pomógł: 0 Dołączył: 16.03.2004 Ostrzeżenie: (10%) ![]() ![]() |
[php:1:6ec9df77cb]<?php
class test { var $h; function test() { $this->h = "Bardzo fajny text"; } } $test = new test(); $test->test(); echo $test->h; ?>[/php:1:6ec9df77cb] moze tak ? |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 27 Pomógł: 0 Dołączył: 19.02.2004 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
Cytat [php:1:0b0873fc5a]<?php
class test { var $h; function test() { $this->h = "Bardzo fajny text"; } } $test = new test(); $test->test(); echo $test->h; ?>[/php:1:0b0873fc5a] moze tak ? No wrescze ktoś pomógł. Punkcik dany (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 216 Pomógł: 0 Dołączył: 9.08.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
a dlaczego nie zalecany ? bo tego nie rozumiem...
|
|
|
![]()
Post
#11
|
|
Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
Cytat a dlaczego nie zalecany Dwie sytuacje:
[php:1:2687e6f3b3]<?php class test { function test() { $h = "Bardzo fajny text"; } } $test = new test(); echo $test->h; ?> [/php:1:2687e6f3b3] [php:1:2687e6f3b3]<?php class test { var $h = ''; function test() { $this->h = "Bardzo fajny text"; } } $test = new test(); echo $test->h; ?> [/php:1:2687e6f3b3] W pierwszym przypadku $h jest to zwykła zmienna wewnątrz metody. Zmienna ta w zasadzie nie powinna byc widoczna z zewnątrz jednak php jest mało restrykcyjnym językiem. W drugim przykładzie $h staje się właściwością klasy test() a zatem można się do niej odwoływać za pomocą operatora -> Dodatkowo w calym ciele klasy od razu widać że jest to poprawnie użyta właściwość (poprzez odwołanie $this-> ) bieżącego obiektu a nie tymczasowo czy przypadkiem utworzona zmienna (np. licznik jakiejś pętli). |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 216 Pomógł: 0 Dołączył: 9.08.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
ok mniej wiecej wytlumaczyles mi scanner ...
|
|
|
![]()
Post
#13
|
|
Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
To może inaczej...[php:1:915bff6415]<?php
class Klasa { var $strFoo = ''; function Klasa() { $strFoo = 'Bar'; $this->strFoo = 'Bar2'; echo '$strFoo = '.$strFoo.'<br />'; echo '$this->strFoo = '.$this->strFoo.'<br />'; } } $Klasa = new Klasa(); echo '$Klasa->strFoo = '.$Klasa->strFoo.'<br />'; ?>[/php:1:915bff6415]Wynik: Cytat $strFoo = Bar
$this->strFoo = Bar2 $Klasa->strFoo = Bar2 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 01:49 |