Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dodawanie danych statycznych
Forum PHP.pl > Forum > PHP > Object-oriented programming
Kmils21
Witam, da się jakoś przez funkcje dodać dane składowe do klasy np zmienna statyczna?

Tak żebym mógł się do niej odwołać w ten sposób:

class::$zmienna
404
  1. class Foo {
  2. static $bar = 69;
  3. }
  4. // ...
  5. echo Foo::$bar;
Kmils21
Moja wina, bo źle się wyraziłem. Chodzi mi o dodanie zmiennej przez funkcje.

coś jak __set, ale zmienna statyczna

np

class::DodajZmienna("nazwa")

(odwoływać się chce tak class::$zmienna, nie żadną funkcją)

a jeżeli się nie da, to czy da się zrobić pętle podczas tworzenia danych składowych

np

class{


for($i=0;$i<10;$i++){

public static ${zmienna$i};

}

}
by_ikar
__get i zacznij umieszczać swój kod php pomiędzy [php][/php] bbcode
Pyton_000
Z tego co pamiętam to nie da się stworzyć dynamicznie statycznej zmiennej bez tworzenia obiektu.

A dlaczego akurat statyczne zmienne?
celbarowicz
Nie mam pojęcia o OOP.
Wykombinowałem coś takiego:
  1. <?php
  2. class Zmienne{
  3. public static $i;
  4. public static $value;
  5. public static $zmienna=array();
  6. public static function zmdodaj($i,$value)
  7. {
  8.  
  9. self::$zmienna[self::$i=$i]=self::$value=$value;
  10.  
  11. return self::$zmienna;
  12. }
  13.  
  14. }
  15.  
  16.  
  17. $x=zmienne::zmdodaj(1,'ed');
  18. echo $i=zmienne::$i;
  19. echo '<br>';
  20. print_r($x);
  21. echo '<br>';
  22. echo zmienne::$zmienna[$i];
  23. echo '<br>';
  24. echo '------------------------';
  25. echo '<br>';
  26. $x=zmienne::zmdodaj('buda','pies');
  27. echo $i=zmienne::$i;
  28. echo '<br>';
  29. print_r($x);
  30. echo '<br>';
  31. echo zmienne::$zmienna[$i];
  32. echo '<br>';
  33. echo '------------------------';
  34. echo '<br>';
  35. echo zmienne::$zmienna[1];
  36. ?>
  37.  
  38.  


Czy to jest OK?
Kmils21
Tak, to jest ok ale na takie coś już wpadłem. Nie chodzi mi o tablice, a o nową zmienną.

Cytat
__get i zacznij umieszczać swój kod php pomiędzy [php][/php] bbcode


A Ty zacznij czytać ze zrozumieniem.

Cytat
A dlaczego akurat statyczne zmienne?


Dlatego, że to klasa abstrakcyjna.
Pyton_000
Skoro jest to klasa Abstrakcyjna to nie może być elementem do którego się odwołujesz.
Powinieneś to robić przez klasę dziedziczącą.

Dlatego śmiem twierdzić że źle się do tego zabierasz.
Crozin
1. Chcesz używać właściwości statycznych.
2. Chcesz tworzyć je dynamicznie.
3. Nie chcesz z jakiegoś bliżej nieokreślonego powodu skorzystać z tablicy.
4. Chcesz to wepchać w klasę abstrakcyjną.

Podaj może co chcesz osiągnąć tym czymś? Do czego to ma służyć? Na 99% źle zabierasz się do tematu.
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-2024 Invision Power Services, Inc.