Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [klasy] modyfikacja wlasciwosci klasy z drugiej klasy
Forum PHP.pl > Forum > PHP
lukasek
Witam,
Mam taki schematyczny kod:
[php:1:9f49206d3f]<?php
class KlasaPierwsza
{
var $wartosc;

function modyfikujWartosc($wartosc) {
$this->wartosc = $wartosc;
}
}

class KlasaDruga
{
function WywolajModyfikacjeWartosci($KlasaPierwsza) {
$KlasaPierwsza->modyfikujWartosc('zmodyfikowana');
}
}

$KlasaPierwsza = new KlasaPierwsza;
$KlasaDruga = new KlasaDruga;
$KlasaDruga->WywolajModyfikacjeWartosci($KlasaPierwsza);

// wyswietl zmodyfikowna wartosc z klasy Pierwszej
echo $KlasaPierwsza->wartosc;
?>
[/php:1:9f49206d3f]
Jednak nie dziala on jak nalezy. W rezultacie nie otrzymuje zadnych bledow ale tez tego czego oczekuje - czyli wartosci $wartosc z klasy KlasaPierwsza. Prosze o przeanalizowania kodu i powiedzenie mi co robie zle. Chcialbym z jednej klasy (KlasaDruga) poprzez wywolanie funkcji modyfikujWartosc z drujgiej klasy (KlasaPierwsza) zmodyfikowac wlasciwosc tej klasy (KlasaPierwsza).
Nie wiem czy przekazywanie obiektu poprzez ladowanie do funkcji jest odpowiednie... (przekazywanie obiektu klasy poprzez argument)
Zalezy mi tez na tym zebym do wartosci odwolywal sie poprzez klase w ktorej wartosc zostala zmienion czyli KlasaPierwsza.
Wiem ze moglbym stworzyc w KlasaDruga obiekt klasypierwszej ale szukam innego rozwiazania.
W kazdym badz razie glowie sie nad tym juz dopre dwa dni i nie znalazlem rozwiazania.

Pozdrawiam
DeyV
[php:1:c70ebda073]<?php
class KlasaDruga
{
function WywolajModyfikacjeWartosci(&$KlasaPierwsza) {
$KlasaPierwsza->modyfikujWartosc('zmodyfikowana');
}
}

$KlasaPierwsza = new KlasaPierwsza;
$KlasaDruga = new KlasaDruga;
$KlasaDruga->WywolajModyfikacjeWartosci(&$KlasaPierwsza);
?>[/php:1:c70ebda073]
Polecam bardzo ważny (choć aktualny tylko do pojawienia się php5) rozdział w manualu o przekazywaniu obiektów i konieczności używania referencji -> [manual:c70ebda073]oop.newref[/manual:c70ebda073]
lukasek
Cytat
Polecam bardzo ważny (choć aktualny tylko do pojawienia się php5) rozdział w manualu o przekazywaniu obiektów i konieczności używania referencji -> [manual:72e7d4d36b]oop.newref[/manual:72e7d4d36b]

Dzieki wlasnie o to chodzilo. Taka prosta rzecz a czlowiek tyle musi sie nasiedziec biggrin.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.