mam bardzo dziwny problem: parę lat temu napisałem sobie prosty pager, który wtedy działał bez zarzutu zawsze i wszędzie. Teraz działa tylko wtedy, gdy znajduje się sam w pliku. Taki samolubny się zrobił...
Konkretnie wygląda to tak:
pliczek 'stronicowanie.php'
Gdy uruchamiam ten kod, wszystko jest w porządku (jeśli skomentuję linijkę 28 to nic się nie wyświetli). Lecz gdy wkleję samą funkcję do innego pliku (lub includuję plik z samą funkcją), pojawiają się błędy:
<?php // ilosc - ilosc wynikow // a - zaczynac od zera czy od jedynki // c - ile na strone function pag($ilosc, $a, $c) { $start = $_GET['start']; else $start=1; while($ilosc>0) { $b=$b+1; if ((($b-1)*$c)+1==$start) else $ilosc -= $c; $a += $c; } } pag(56, 1, 6); ?>
Cytat
Warning: Missing argument 1 for pag() in index.php on line 6
Warning: Missing argument 2 for pag() in index.php on line 6
Warning: Missing argument 3 for pag() in index.php on line 6
A gdy uruchomię funkcję gdzieś dalej w pliku, podając argumenty: pag(36,1,10); to funkcja wykonuje się dwa razy... Raz w miejscu, gdzie jest zdeklarowana - i tu wyświetla ostrzeżenia, drugi raz w miejscu, gdzie rzeczywiście ją uruchamiam - tu wyświetla numer stron.Warning: Missing argument 2 for pag() in index.php on line 6
Warning: Missing argument 3 for pag() in index.php on line 6
Nie mam pojęcia jak to możliwe, nie widzę żadnej reguły szczególnie jeśli funkcja działa normalnie w osobnym pliku...
Starając się pozbyć ostrzeżeń wstawiłem wartości do funkcji; linijka 6 wygląda wtedy tak: function pag($ilosc=0, $a=1, $c=10) { i również w tym przypadku funkcja sama się wykonuje (sprawdziłem to dodając print 'asd'; na końcu).
Co zrobić, aby funkcja wykonywała się tylko tam, gdzie ja tego chcę?