Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Jak uzyskać zmienne z klasy?
baraqda
post
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)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 12)
BzikOS
post
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.
Go to the top of the page
+Quote Post
baraqda
post
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:
Go to the top of the page
+Quote Post
Jojo
post
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]
Go to the top of the page
+Quote Post
Ace
post
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]
Go to the top of the page
+Quote Post
DeyV
post
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.
Go to the top of the page
+Quote Post
baraqda
post
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??
Go to the top of the page
+Quote Post
jureusz
post
Post #8





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 16.03.2004

Ostrzeżenie: (10%)
X----


[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 ?
Go to the top of the page
+Quote Post
baraqda
post
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)
Go to the top of the page
+Quote Post
Ace
post
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...
Go to the top of the page
+Quote Post
scanner
post
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).
Go to the top of the page
+Quote Post
Ace
post
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 ...
Go to the top of the page
+Quote Post
scanner
post
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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 01:49