Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Dodawanie danych statycznych
Kmils21
post
Post #1





Grupa: Zarejestrowani
Postów: 128
Pomógł: 0
Dołączył: 29.12.2010

Ostrzeżenie: (0%)
-----


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

Ten post edytował Kmils21 22.08.2014, 23:19:45
Go to the top of the page
+Quote Post
404
post
Post #2





Grupa: Zarejestrowani
Postów: 226
Pomógł: 25
Dołączył: 22.05.2011

Ostrzeżenie: (0%)
-----


  1. class Foo {
  2. static $bar = 69;
  3. }
  4. // ...
  5. echo Foo::$bar;
Go to the top of the page
+Quote Post
Kmils21
post
Post #3





Grupa: Zarejestrowani
Postów: 128
Pomógł: 0
Dołączył: 29.12.2010

Ostrzeżenie: (0%)
-----


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};

}

}

Ten post edytował Kmils21 22.08.2014, 23:19:03
Go to the top of the page
+Quote Post
by_ikar
post
Post #4





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

Ostrzeżenie: (0%)
-----


__get i zacznij umieszczać swój kod php pomiędzy [php][/php] bbcode
Go to the top of the page
+Quote Post
Pyton_000
post
Post #5





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Z tego co pamiętam to nie da się stworzyć dynamicznie statycznej zmiennej bez tworzenia obiektu.

A dlaczego akurat statyczne zmienne?
Go to the top of the page
+Quote Post
celbarowicz
post
Post #6





Grupa: Zarejestrowani
Postów: 253
Pomógł: 31
Dołączył: 30.03.2009
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
Kmils21
post
Post #7





Grupa: Zarejestrowani
Postów: 128
Pomógł: 0
Dołączył: 29.12.2010

Ostrzeżenie: (0%)
-----


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.

Ten post edytował Kmils21 24.08.2014, 12:53:13
Go to the top of the page
+Quote Post
Pyton_000
post
Post #8





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
Crozin
post
Post #9





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


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.
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: 24.12.2025 - 19:49