Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> tablica w klasie
metalzone
post 21.04.2009, 12:31:17
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 29.01.2007

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


Witam.

Mam taki kodzik (jest to cala klasa i taka zmienna statyczna) :

  1. <?php
  2. public static $toSearch = array (
  3.        array('module'        => 'categories',
  4.              'module_name' => 'Categories',
  5.              'route_name'    => '@product_category?id=:id&title=:title',
  6.              'route_param' => array(':id', ':title'),
  7.              'route_fields'=> array('id', 'name'),
  8.              'route_required_fields' => array( [b][color="#FF0000"]"name_".self::$culture[/color][/b] => 'name'),
  9.              'table'        => Category::TABLE,
  10.              'primary'     => 'id',  
  11.              'fields'        => array([b][color="#FF0000"]'name_'.self::$culture[/color][/b] => 'name'),
  12.              'extra_fiels' => array('foto')
  13.        )
  14.       )
  15. ?>


i jak proboje konkatenowac w tablicy zmienna to wywala : Parse error: syntax error, unexpected '.', expecting ')' in ....

NIe wiem o co chodzi...

wogolnie nie mozna zrobic np.
class test {
public $a = arrray($b);
}

wywala blad.

a jak zrobie tak w metodzie jest ok



wyglada na to ze wogole nie mozna konkatenowac
Go to the top of the page
+Quote Post
skowron-line
post 21.04.2009, 12:32:14
Post #2





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


Na końcu brakuje średnika.


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
blooregard
post 21.04.2009, 12:32:46
Post #3


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




Cytat
wogolnie nie mozna zrobic np.
class test {
public $a = arrray($b);
}


Aby coś takiego Ci zadziałało, musisz tablicę $b przesłać jako argument do konstruktora i tam przypisać ją składowej klasy:
  1. <?php
  2. ...
  3. public $a = array();
  4.  
  5. public function __construct ( $b ) {
  6.   $this->a = array($b);
  7. }
  8. ?>


--------------------
Life's simple... You make choices and don't look back...
Go to the top of the page
+Quote Post
osl
post 21.04.2009, 12:33:24
Post #4





Grupa: Zarejestrowani
Postów: 260
Pomógł: 41
Dołączył: 6.04.2009
Skąd: Gdańsk/okolice

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


odpowiedz sobie na pytaniem, zwłaszcza w tym drugim przypadku:
  1. <?php
  2. class test {
  3. public $a = array($b);
  4. }
  5. ?>

skąd php ma wiedzieć co to jest $b? ta zmienna jest niezainicjowana nigdzie dlatego nie da rady w ten sposób.
podobnie w pierwszym - próbujesz zainicjować zmienną zależącą od innych zmiennych/stałych, które mogą nie być ustawione jeszcze...
Go to the top of the page
+Quote Post
metalzone
post 21.04.2009, 12:38:59
Post #5





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 29.01.2007

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


no dobra ale jak jest zmienna statyczna to nie powinno byc problemu

w kazdym badz razie pewnie trzeba zainicjowac w konstruktorze.
Go to the top of the page
+Quote Post
blooregard
post 21.04.2009, 12:40:27
Post #6


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




Cytat
no dobra ale jak jest zmienna statyczna to nie powinno byc problemu

Składowe klasy inicjalizujesz w konstruktorze w momencie tworzenia obiektu lub w odpowiednich metodach już po utworzeniu go.


--------------------
Life's simple... You make choices and don't look back...
Go to the top of the page
+Quote Post
dr_bonzo
post 21.04.2009, 13:03:55
Post #7





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Inicjacja zmienyych klasy/obiektu w php jest mocno ograniczona.
Otocz ta publiczna tablice jakas metoda ktora przy pierwszym wywolaniu zbuduje ta tablice, a potem bedzie tylko jej uzywac.


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
metalzone
post 21.04.2009, 13:11:49
Post #8





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 29.01.2007

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


dzieki wszystkim za odpowiedzi. zrobie wedlug waszych wskazowek.

pozdrawiam.
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 Wersja Lo-Fi Aktualny czas: 19.07.2025 - 10:18