Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Tablica array w class
dram
post 26.12.2011, 04:29:31
Post #1





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 15.10.2011

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


  1. class server_data {
  2. private $ip = array();
  3. private $name = array();
  4. private $pw = array();
  5.  
  6. function add_server($ip_c,$name_c,$pw_c){
  7. array_push($this -> ip,$ip_c);
  8. array_push($this -> name,$name_c);
  9. array_push($this -> pw,$pw_c);
  10. }
  11. public function show_data($srv_num){
  12. return array($this -> ip[$srv_num],$this -> name[$srv_num],$this -> pw[$srv_num]);
  13. }
  14. }


To moja piękna class-a dodaje(bądź nie dodaje) jakieś wartości do tablic zastosowywując add_server.

Funkcja show_data nic mi nie zwraca.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
dram
post 28.12.2011, 14:53:34
Post #2





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 15.10.2011

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


Zmieniłem trochę klass-ę lecz nadal nie wyświetla mi tzn:

edit...
To co było to już mało istotne znalazłem głupi błąd lecz nie moge go wyelminować. Chodzi o to że tworzę dwa razy uchwyt do class-y w jednym zapisuje a w drugim odczytuje. (odczyt nie działa) jednak jak wszystko robie na jednym to działa. Tyle że chce skrypt rodzielić na 3 tj.

Skrypt główny > include("class.php"); > include("wczytywaczka.php");

Teraz po kolei:
skrypt główny(działający):
  1. <?php
  2.  
  3. include("inc/kop_class.php");
  4. $data = array(
  5. 'cos' => array('ip','nick','pw')
  6. );
  7. $obj2 = new server_data;
  8. foreach ( $data as $server_name => $server_data )
  9. {
  10. echo("DODANO $server_name <br>");
  11. $obj2 -> add_server($server_data[0],$server_data[1],$server_data[2],$server_name);
  12. }
  13.  
  14. var_dump($obj2 -> show_data(0));
  15. ?>

Efekt:
  1. ZALADOWANO
  2. DODANO cos
  3. array(4) { ["ip"]=> string(2) "ip" ["name"]=> string(4) "nick" ["pw"]=> string(2) "pw" ["sv_name"]=> string(3) "cos" }

Super działa.. Ale brak pożądanego efektu. (podzielenia tych skryptów).
Teraz nie działający ten do naprawienia:
  1. <?php
  2.  
  3. include("inc/kop_class.php");
  4. $data = array(
  5. 'cos' => array('ip','nick','pw')
  6. );
  7. $obj2 = new server_data;
  8. foreach ( $data as $server_name => $server_data )
  9. {
  10. echo("DODANO $server_name <br>");
  11. $obj2 -> add_server($server_data[0],$server_data[1],$server_data[2],$server_name);
  12. }
  13.  
  14. $obj = new server_data; // przez to
  15. var_dump($obj -> show_data(0)); // i przez to...
  16. ?>

EFEKT:
  1. ZALADOWANO
  2. DODANO cos
  3. NULL

Class-a:
  1. <?php
  2. echo "ZALADOWANO <br>";
  3. //include("server_data.php");
  4. class server_data {
  5. protected $FTP = array();
  6. function add_server($ip_c,$name_c,$pw_c,$sv_name){
  7. $this -> FTP[] = array('ip' => $ip_c, 'name' => $name_c, 'pw' => $pw_c,'sv_name' => $sv_name);
  8. //echo "Dodano ".$this -> FTP[0]['sv_name']."<br>";
  9. }
  10. function show_data($srv_num){
  11. //return array($this -> ip[$srv_num],$this -> name[$srv_num],$this -> pw[$srv_num]);
  12. //echo ($this -> FTP[0]['sv_name']);
  13. return $this -> FTP[$srv_num];
  14. }
  15. }
  16.  
  17. ?>


Jak zapewne się domyślacie z głównego skryptu chce wywalić add_server i wrzucić w odzielny który będzie wczytywany przez class-e.

baaasmiley.gif santa.gif

refresh

ref 2 specool.gif

Ten post edytował dram 27.12.2011, 03:02:30
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Wersja Lo-Fi Aktualny czas: 25.06.2025 - 14:05