[ Miloš Bjelanović @ 22.12.2011. 16:42 ] @
What value is printed for "a" below Code: <?php $a = 1; function Test() { echo "a = $a"; } Test(); ?> Odgovori: 1, 2, 3, no value. Moj odgovor je 1, ali nije tačno, već je "no value". Zašto? |
[ Miloš Bjelanović @ 22.12.2011. 16:42 ] @
[ plus_minus @ 22.12.2011. 17:22 ] @
Ako tebi lično nije jasno, a ne testiraš nikoga ovde, onda treba samo da staviš global $a; pre echo "a=$a"; ili da definišeš $a unutar same f'je.
Code (php): $a = 1; function Test() { global $a; echo "a = $a"; } Test(); Code (php): function Test() { $a = 1; echo "a = $a"; } Test(); Code (php): $a = 1; function Test($a) { echo "a = $a"; } Test($a); [ VladaSu @ 22.12.2011. 17:24 ] @
Code (php): <?php $a = 1; function Test() { echo "a = $a"; } Test(); ?> Zato sto varijable definisane izvan funkcije nisu vidljive u funkciji. Ovo je moguce: Code (php): <?php function Test() { $a = 1; echo "a = $a"; } Test(); ?> To mozes ovako resiti: 1. Prenos varijabli Code (php): <?php $a = 1; function Test($b) // moze i $a koji nije isti sa onim $a = 1 ali sam stavio $b da te ne buni { echo "a = $b"; } Test($a); ?> 2. Koriscenjem global naredbe (nije preporucljivo) Code (php): <?php $a = 1; function Test() { global $a; echo "a = $a"; } Test(); ?> [ Miloš Bjelanović @ 23.12.2011. 14:39 ] @
Sad mi je jasno - promjenljiva mora biti definisana unutar funkcije, ili povezana sa promjenljivom van funkcije preko riječi "global".
Hvala obojici. [ VladaSu @ 23.12.2011. 17:32 ] @
Gledaj da ne koristis global. To ti je najore moguce resenje.
[ plus_minus @ 23.12.2011. 19:04 ] @
@Miloš Bjelanović
Nema na čemu. Što se tiče 'global' rešenja, ako je promenjiva prost integrer (kao u ovom primeru) i primenjue se u sasvim prostim funkcijama za statični sadržaj, gde nema formi, itd. onda možeš i global varijantu. [ Milos911 @ 23.12.2011. 23:33 ] @
Citat: Miloš Bjelanović: Sad mi je jasno - promjenljiva mora biti definisana unutar funkcije, ili povezana sa promjenljivom van funkcije preko riječi "global". Hvala obojici. Preskocio si i ovo resenje: Code: $a = 1; function Test($a) { echo "a = $a"; } Test($a); Takodje mozes da pises samo Code: function Test($a) { echo "a = $a"; } Test(1); I ako hoces da samo vratis vrednost iz funkcije, mozes da koristis return $a; [ VladaSu @ 24.12.2011. 00:58 ] @
A moze i:
Code (php): function Test($a = 5) { echo "a = $a"; } $b = 3; Test(); Test(2); Test($b); Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|