![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 83 Pomógł: 3 Dołączył: 21.04.2007 Skąd: Sosnowiec Ostrzeżenie: (0%) ![]() ![]() |
Zastanawia mnie fakt braku jednego elemetu w języku (bądź ja go nie znam / nie znalazłem). Chodzi konkretnie o to że gdy zdefiniuje sobie jakąś klasę np
No i np chciałbym przekazać wszystkie wartości zmienne do jakiejś innej klasy i chciałbym aby ta klasa byla traktowana jako taka baza czyli jeśli wyślę tam $zmienną1 to mogę ją pobrac w innej klasie przez dziedziczenie... moim zdaniem powinno istnieć coś takiego
Jeśli ktoś wie jak coś takiego zrobić prosze o pomoc ![]() -------------------- ![]() |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 262 Pomógł: 21 Dołączył: 3.05.2004 Skąd: Sopot, Krakow, W-wa Ostrzeżenie: (0%) ![]() ![]() |
Moze statycznie to przypisac - nie wiem czy Ci dokladnie o to chodzi ale chyba tak
![]() -------------------- Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Jak mowi NuLL - tylko zmienna statyczna (protected), jest wspolna dla wszystkich obiektow danej klasy i jej podklas.
-------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 83 Pomógł: 3 Dołączył: 21.04.2007 Skąd: Sosnowiec Ostrzeżenie: (0%) ![]() ![]() |
Czyli z tego mam rozumieć że coś takeigo będzie dizałać?
czy coś takiego będzie działać? raczej nie bo to typ protected No i nie chodzi mi o przepisanie tego hmm a może jednak da sie coś z tym protected zrobić... Ten post edytował Landon 8.09.2008, 20:37:17 -------------------- ![]() |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 278 Pomógł: 10 Dołączył: 13.02.2007 Skąd: Rybnik Ostrzeżenie: (0%) ![]() ![]() |
Może wykorzystaj singleton:
Pisane jako schemat, nie sprawdzałem, ale powinno działać. Pzdr. -------------------- Nawet, jeżeli nie jesteś zainteresowany usługami IT ani outsourcingiem, a Twoją pasją jest programowanie - zobacz naszą stronę. Piszemy dużo fajnych use-caseów, jak podchodzimy do tematu programowania dla naszych klientów. A tak na co dzień tworzymy budujemy mvp oraz tworzymy platformę b2b.
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 83 Pomógł: 3 Dołączył: 21.04.2007 Skąd: Sosnowiec Ostrzeżenie: (0%) ![]() ![]() |
dzięki właśnie o coś takeigo mi chodziło ale mam dalej problem:
zgodnie z tym co wiem i co mi napisaliście poprawiłem skrypt kolegi i wyszło mi coś takeigo
tylko jest jeden mankament to wyświetla mi :
czyli chodzi o to ze nie nadpisuje tablic... zadanie rozwiązane ale tylko tymczasowo $this->zmienna = array_merge($this -> zmienna,Array('cos' => 2)); ale trzeba pomyśleć by z array_merge nie korzystać Ten post edytował Landon 8.09.2008, 22:37:10 -------------------- ![]() |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 120 Pomógł: 10 Dołączył: 16.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Hmm...
mógłbyś pokazać co daje var_dump dla $name w Db za drugim razem? Sam bym zobaczył ale kod coś jest pociachany z :: i -> ![]() Kod public function __set($name, $value) {
$this -> oEngine -> $name = $value; var_dump($name); } Ten post edytował Exek 8.09.2008, 22:50:18 |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 83 Pomógł: 3 Dołączył: 21.04.2007 Skąd: Sosnowiec Ostrzeżenie: (0%) ![]() ![]() |
mysle sobie czy coś tego typu nie zadziała:
a var_dump zwraca:
-------------------- ![]() |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 120 Pomógł: 10 Dołączył: 16.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Trochę referencji i śmiga
![]() Kod class Register {
private static $oInstance = null; private $aGet = array(); public function set($sName, &$sValue) { $this->aGet[$sName] = &$sValue; } public function & get($sName) { $v = & $this->aGet[$sName]; return $v; } public function singleton() { if (self::$oInstance == null) self::$oInstance = new self(); return self::$oInstance; } } abstract class Db { protected $oEngine = array(); public function __construct() { $this->oEngine = Register::singleton(); } public function __set($name, $value) { $this -> oEngine -> set($name, $value); } public function & __get($name) { return $this -> oEngine ->get($name); } Ten post edytował Exek 9.09.2008, 05:28:57 |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 83 Pomógł: 3 Dołączył: 21.04.2007 Skąd: Sosnowiec Ostrzeżenie: (0%) ![]() ![]() |
Dzięki teraz działa poprawnie....
{edit} Brakuje mi jeszcze jednego gdy prubuje pobrac jakieś dane których nie ma tam wywala mi błąd; Fatal error: Call to a member function get() on a non-object in test.php on line 45 Chodzi o to że wtedy coś się sypie i jak to naprawić? $v = & $this -> aGet[$sName]; zamienić na: $v = & (($this -> aGet[$sName]) ? $this -> aGet[$sName] : null); czy tak mógłbym to zrobić? -------------------- ![]() |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 07:25 |