Wpis z mikrobloga

Dupek na stackoverflow oznaczył jako duplikat i d--a. Może ktoś tutaj pomoże.
mam kod:

$sub0 = $submission->data[19]['value'][0];
$sub1 = $submission->data[19]['value'][1];

print 'sub 0: '. $sub0;
print 'sub 1: '. $sub1;

function checkboxes($box1, $box2, $sub0, $sub1) {
print 'sub 0: '. $sub0;
print 'sub 1: '. $sub1;

if ($sub1 == 2) {
print #box1;
}
(...)
}

potem funkcję wołam przez checkboxes('textasdasd', 'text2');

Problem jest taki, że zmienne globalne poza funkcją wyświetlają się dobrze. Natomiast w funkcji ich nie widzi. Próbowałem także poprzez global $sub0; , próbowałem całe zmienne wpakowywać do funkcji - i nic. Nie wiem co tu jest nie tak :C #drupal #php #webdev #pytanie
  • 13
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

('textasdasd', 'text2');
Przekazujesz 2 argumenty do funkcji i się dziwisz, że reszty nie ma?
Chyba, że php działa inaczej niż każdy inny język programowania ale jak nie to, musisz je przekazać bo w implementacji funkcji deklarujesz zmienne lokalne, nie przyjmie Ci to automatycznie globalnych zmiennych tylko dlatego, że nazwa podobna jest.
  • Odpowiedz
@adiqq: https://ideone.com/OXNoJw
uprościłem do tego, co było wartością tablicy dla zmiennych i w ten sposób działa. Więc to musi być jakiś błąd Drupala, albo po prostu czegoś do końca nie rozumiem - pewnie to drugie ;)
Bo niby dlaczego $submission->data[19]['value'][0] daje wartość 1, a w funkcji głupieje i nie daje nic?
  • Odpowiedz