🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.php
6 messages
6 total messages Started by jivanmukta Wed, 10 Sep 2014 14:19
$GLOBALS, Undefined index
#230557
Author: jivanmukta
Date: Wed, 10 Sep 2014 14:19
24 lines
1793 bytes
Uczę się PHP5. Korzystam z PHP Version 5.3.10-1ubuntu3.13 na localhoście.
Mam zmienną $client_name o wartości "Janko Muzykant". 
Dlaczego następujący kod:

echo 'client_name:';var_dump($client_name);
echo 'GLOBALS:';var_dump($GLOBALS['client_name']);

wyświetla mi:

client_name:string(14) "Janko Muzykant"
GLOBALS:
A PHP Error was encountered
Severity: Notice
Message: Undefined index: client_name
Filename: announcement/form.php
Line Number: 4
NULL 

Myślałem że wyświetli się:

client_name:string(14) "Janko Muzykant"
GLOBALS:string(14) "Janko Muzykant" 

Proszę o pomoc. Mam jeszcze małe doświadczenie.
Re: $GLOBALS, Undefined index
#230558
Author: Lemat
Date: Wed, 10 Sep 2014 14:48
34 lines
1731 bytes
jivanmukta@poczta.onet.pl wrote:

> Uczę się PHP5. Korzystam z PHP Version 5.3.10-1ubuntu3.13 na localhoście.
> Mam zmienną $client_name o wartości "Janko Muzykant".
> Dlaczego następujący kod:
> 
> echo 'client_name:';var_dump($client_name);
> echo 'GLOBALS:';var_dump($GLOBALS['client_name']);
> 
> wyświetla mi:
> 
> client_name:string(14) "Janko Muzykant"
> GLOBALS:
> A PHP Error was encountered
> Severity: Notice
> Message: Undefined index: client_name
> Filename: announcement/form.php
> Line Number: 4
> NULL
> 
> Myślałem że wyświetli się:
> 
> client_name:string(14) "Janko Muzykant"
> GLOBALS:string(14) "Janko Muzykant"
> 
> Proszę o pomoc. Mam jeszcze małe doświadczenie.


a $client_name jest zmienną globalną czy lokalną?

-- 
Pozdrawiam
Lemat
www.lemat.priv.pl
Re: $GLOBALS, Undefined index
#230559
Author: jivanmukta
Date: Wed, 10 Sep 2014 15:21
23 lines
1949 bytes
Myślałem, że globalną. Ale może rzeczywiście jest lokalna.

Zmienna jest parametrem widoku announcement/form.php, powstaje tak (w kontrolerze, CodeIgniter):

$params['client_name'] = ...;
$this->load->view('announcement/form', $params);

Potrzebuje się do niej odwołać w helperze, zrobiłem tak (i jest źle):

function myValue($fieldName) {
    if (array_key_exists($fieldName, $GLOBALS)) {
        return $GLOBALS[$fieldName];
    } 
    $ci =& get_instance();
    $values = $ci->session->flashdata('field_values');
    if (!empty($values) && array_key_exists($fieldName, $values)) {
        return $values[$fieldName];
    }
    return FALSE;
}


Czy wiesz jak się do niej odwołać?
Re: $GLOBALS, Undefined index
#230560
Author: jivanmukta
Date: Wed, 10 Sep 2014 16:12
16 lines
1934 bytes
Zrobiłem tak:

function myValue($fieldName) {
    if (isset($$fieldName)) {
        return $$fieldName;
    }
    $ci =& get_instance();
    $values = $ci->session->flashdata('field_values');
    if (!empty($values) && array_key_exists($fieldName, $values)) {
        return $values[$fieldName];
    }
    return FALSE;
}

i działa. Więc chyba lokalna. 
Problem zamknięty.
Re: $GLOBALS, Undefined index
#230561
Author: jivanmukta
Date: Thu, 11 Sep 2014 18:13
2 lines
1616 bytes
Nie, jednak nie działa. isset($$fieldName) zwraca mi FALSE.
Czy ktoś mógłby mi pomóc i powiedzieć jak dobrać się do zmiennych typu $client_name (tzn. przez nazwę w stringu) w helperze myValue? Byłbym bardzo wdzięczny.
Re: $GLOBALS, Undefined index
#230562
Author: jivanmukta
Date: Tue, 16 Sep 2014 16:03
2 lines
1693 bytes
Użyłem flashdata zamiast zmiennych i działa.
Problem zamknięty.
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads