Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> unset() w konteskście statycznym
23kulpamens
post
Post #1





Grupa: Zarejestrowani
Postów: 57
Pomógł: 1
Dołączył: 11.10.2007

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


Jak to jest możliwe, że nie mogę usunąć ani zmienić zawartości komórki tablicy przekazywanej do funkcji?? Kod jest taki
  1. public static function search($input){
  2. /**
  3.   * Process input
  4.   */
  5. print_r($input);
  6. if( $input['price']['from'] == '' && $input['price']['to'] == ''){
  7. var_dump("cut1");
  8. $input['price'] = 1;
  9. $input['price'] = '';
  10. unset($input['price']);
  11. }else{
  12. var_dump("trim");
  13. $input['price']['from'] = ($input['price']['from'] == '' ? 0 : $input['price']['from']);
  14. $input['price']['to'] = ($input['price']['to'] == '' ? 0 : $input['price']['to']);
  15. }
  16.  
  17. if( $input['area']['from'] == '' && $input['area']['to'] == ''){
  18. var_dump("cut");
  19. $input['area'] = 1;
  20. unset($input['area']);
  21. }else{
  22. var_dump("trim");
  23. $input['area']['from'] = ($input['area']['from'] == '' ? 0 : $input['area']['from']);
  24. $input['area']['to'] = ($input['area']['to'] == '' ? 0 : $input['area']['to']);
  25. }
  26.  
  27. foreach($input['parameters'] as $key => $value){
  28. if( $value == '')
  29. unset($input[$key]);
  30. }
  31. print_r($input);


tablica $input na początku i na końcu jest taka sama. Nie rozumiem dlaczego unset nie działa. Czy ze względu na kontekst statyczny?? Ma ktoś jakieś rozwiązanie??
Go to the top of the page
+Quote Post
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Ze wzgledu na to ze unsety sie nie wykonuja z tego wzgledu ze warunki w if nie zostaja spelnione.
Go to the top of the page
+Quote Post
LBO
post
Post #3





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

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


A możesz taką jedną tablice var_exportować?
Go to the top of the page
+Quote Post
23kulpamens
post
Post #4





Grupa: Zarejestrowani
Postów: 57
Pomógł: 1
Dołączył: 11.10.2007

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


to jest wynik działania skryptu:
Kod
Array
(
    [input] => Array
        (
            [estateCategory] => mieszkanie
            [noticeType] => 1
        )

    [parameters] => Array
        (
            [wojewodztwo] => dolnośląskie
            [city] =>
            [district] =>
            [price] => Array
                (
                    [from] =>
                    [to] =>
                )

            [area] => Array
                (
                    [from] =>
                    [to] =>
                )

            [rynek] => Array
                (
                    [wtorny] => 1
                )

            [cena_za_m2] => Array
                (
                    [from] =>
                    [to] =>
                )

            [budynek] => Array
                (
                    [blok_mieszkalny] => 1
                    [dom_wielorodzinny] => 1
                    [segmentowy_srodkowy] => 1
                )

            [ilosc_pokoi] => Array
                (
                    [from] =>
                    [to] =>
                )

            [ilosc_pieter] => Array
                (
                    [from] =>
                    [to] =>
                )

            [pietro] => Array
                (
                    [from] =>
                    [to] =>
                )

            [numerOgloszenia] =>
        )

    [nowe_konto_x] => 32
    [nowe_konto_y] => 7
)
string(4) "cut1"
string(3) "cut"
Array
(
    [input] => Array
        (
            [estateCategory] => mieszkanie
            [noticeType] => 1
        )

    [parameters] => Array
        (
            [wojewodztwo] => dolnośląskie
            [city] =>
            [district] =>
            [price] => Array
                (
                    [from] =>
                    [to] =>
                )

            [area] => Array
                (
                    [from] =>
                    [to] =>
                )

            [rynek] => Array
                (
                    [wtorny] => 1
                )

            [cena_za_m2] => Array
                (
                    [from] =>
                    [to] =>
                )

            [budynek] => Array
                (
                    [blok_mieszkalny] => 1
                    [dom_wielorodzinny] => 1
                    [segmentowy_srodkowy] => 1
                )

            [ilosc_pokoi] => Array
                (
                    [from] =>
                    [to] =>
                )

            [ilosc_pieter] => Array
                (
                    [from] =>
                    [to] =>
                )

            [pietro] => Array
                (
                    [from] =>
                    [to] =>
                )

            [numerOgloszenia] =>
        )

    [nowe_konto_x] => 32
    [nowe_konto_y] => 7
    [price] =>


jak widać "cut" oraz "cut1" się wypisują, więc warunek jest spelniony

Ten post edytował 23kulpamens 21.09.2009, 17:31:50
Go to the top of the page
+Quote Post
LBO
post
Post #5





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

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


Może chodziło Tobie o

  1. foreach($input['parameters'] as $key => $value)
  2. {
  3. if( $value == '')
  4. unset($input['parameters'][$key]); // zauważ ['parameters']
  5. }


Strzelam, bo wszystko wygląda w porządku na pierwszy rzut oka.

Ten post edytował LBO 21.09.2009, 18:01:09
Go to the top of the page
+Quote Post
23kulpamens
post
Post #6





Grupa: Zarejestrowani
Postów: 57
Pomógł: 1
Dołączył: 11.10.2007

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


Dokładnie o to, zauważyłem wczoraj, ale już nie zdążyłem odpisać (IMG:style_emoticons/default/tongue.gif) Dzięki za pomoc (IMG:style_emoticons/default/smile.gif)
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: 16.09.2025 - 19:35