Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> talice w klasach
maxxxta
post
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 3.04.2004

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


Mam pewnien problem obsluga tablic w kalsie. Szczegolnie kiedy stosuje add_push....nie moge wyswietlic zawartosci metodą....jedynie jak przesle tablice do zmiennej poza klasa...nie rozumiem tego zupelnie..szczegolnie, ze kod bez klasy dziala(po usunieciu $this)...
Go to the top of the page
+Quote Post
bamboos
post
Post #2





Grupa: Zarejestrowani
Postów: 115
Pomógł: 0
Dołączył: 3.05.2003
Skąd: Łódź

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


Podał byś kawałek kodu?!? Najlepiej ten kawałek co Ci nie działa...
Go to the top of the page
+Quote Post
maxxxta
post
Post #3





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 3.04.2004

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


Kod
<?



class jacek{



var $tablica;



function jacek(){



  $this->$tablica=array();

  

}



function dodaj(){





array_push($this->$tablica, "jablko");

$this->$tablica["jablko"]=array();

array_push($this->$tablica["jablko"], "costam");

echo $this->$tablica["jablko"][0];







return $this->$tablica;

  }









}



$f=new jacek;

$tab=$f->dodaj();









?>
Go to the top of the page
+Quote Post
kszychu
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


[php:1:e4b676926d]<?php
array_push($this->$tablica, "jablko");
$this->$tablica["jablko"]=array();
?>[/php:1:e4b676926d]

Z tego co mi wiadomo, array_push() wstawia WARTOŚĆ na koniec tablicy. Jak więc chcesz się później odwoływać podając wartość pola jako jego index?
Go to the top of the page
+Quote Post
maxxxta
post
Post #5





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 3.04.2004

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


[php:1:0eb4dcb9bc]<?php
$tablica=array();
array_push($tab, "jablko");
$tab["jablko"]=array();
array_push($tab["jablko"], "costam");
echo $tab["jablko"][0];

?>[/php:1:0eb4dcb9bc]

z tym, że poza klasa dziala bez problemu i echo wyświetla "costam"...wiec nic nie wiem jush
Go to the top of the page
+Quote Post
maxxxta
post
Post #6





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 3.04.2004

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


oczywiscie w drugiej linii jest $tab=array()..a nie $tablica...(IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
kszychu
post
Post #7





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


[php:1:c3174cd65a]<?php
// tworzysz nową pustą tablicę
$tablica=array();
// na jej początek, do pola o indeksie 0 wstawiasz string "jabłko"
array_push($tab, "jablko");
// tworzysz KOLEJNE pole w tej tablicy o indeksie "jabłko", po tym masz w tablicy dwa pola: 0 i jabłko
$tab["jablko"]=array();
// do pola o indeksie "jabłko" wrzucasz string "costam"
array_push($tab["jablko"], "costam");
// wyswietlasz zawartosc pola o indeksie "jablko"
echo $tab["jablko"][0];

?>[/php:1:c3174cd65a]

No i działa jak trzeba, tylko, że jak wyświetlisz sobie print_r($tablica) zobaczysz prawdziwą strukturę Twojej tablicy.
Go to the top of the page
+Quote Post
maxxxta
post
Post #8





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 3.04.2004

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


Dobrze zacznijmy jeszcze raz....mi chodzi o to zeby to zrobic w klasie nie poza klasa dla pewnosci podam caly kod [php:1:94e96fbb5b]<?php

class jacek{

var $tablica;

function jacek(){

$this->$tablica=array();

}

function dodaj(){


array_push($this->$tablica, "jablko");
$this->$tablica["jablko"]=array();
array_push($this->$tablica["jablko"], "costam");
print_r($this->$tablica);


return $this->$tablica;
}




}

$f=new jacek;
$tab=$f->dodaj();

echo "<br>";

$tab=array();


array_push($tab, "jablko");
$tab["jablko"]=array();
array_push($tab["jablko"], "costam");
print_r($tab);




?>[/php:1:94e96fbb5b]


a co to wyswietla:
Kod
Array ( [0] => costam )

Array ( [0] => jablko [jablko] => Array ( [0] => costam ) )



i pytanie dlaczwgo i jak zrobic zeby tablica w klasie miala taka sama strukture...jak tablica poza....
Go to the top of the page
+Quote Post
kszychu
post
Post #9





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


No dobra, a jaką strukturę tablicy chcessz uzyskać?
Go to the top of the page
+Quote Post
bamboos
post
Post #10





Grupa: Zarejestrowani
Postów: 115
Pomógł: 0
Dołączył: 3.05.2003
Skąd: Łódź

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


Nieeeeeeeeeeee...
do pól klasy odnisisz się:
[php:1:b79248e6bc]<?php
$this->pole_klasy;
//a nie
$this->$pole_klasy;
?>[/php:1:b79248e6bc]
Pozmnieniaj to ... i będzie działać
Go to the top of the page
+Quote Post
maxxxta
post
Post #11





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 3.04.2004

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


Napisalem dokladnie w poprzednim poscie....ale napisze jeszcze dokladniej....



tablice poza klasa zrobilem,zeby przetestowac budowanie tablicy wielowymiarowej i osiagnalem strukture taka jaka chcialem czyli



Kod
Array ( [0] => jablko [jablko] => Array ( [0] => costam ) )



ale powtarzam to jest tylko pomocnicza tablica, chcialem zponac mechanizm array_push... i teraz w kalsie

chce miec tablice o takiej samej strukturze(tworzoną metodą bo chce operowac na zniennych przysylanych do metody)...
Go to the top of the page
+Quote Post
bamboos
post
Post #12





Grupa: Zarejestrowani
Postów: 115
Pomógł: 0
Dołączył: 3.05.2003
Skąd: Łódź

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


[php:1:20910c7d2c]<?php

class jacek{
var $tablica;

function jacek(){
$this->tablica=array();
}

function dodaj(){
array_push($this->tablica, "jablko");
$this->tablica["jablko"]=array();
array_push($this->tablica["jablko"], "costam");
}
}

$f=new jacek;
$f->dodaj();
echo '<pre>';
print_r($f->tablica);
echo '</pre>';
?>[/php:1:20910c7d2c]
W czym problem?!?
Go to the top of the page
+Quote Post
maxxxta
post
Post #13





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 3.04.2004

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


DZIEKI WIELKIE...taki banal a meczy...soryy,ze tak dlugo trwalo zanim wyjasnilem o co mi chodzi..dziex jeszcze raz:)
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: 25.08.2025 - 12:00