Я получаю эту странную проблему ….
На этой странице есть только этот код. global $ currentPage; null, и я не знаю, почему …
<?php $pager = $_PARAMS["this"]; $pages = 5; $currentPage = 1; $tst="ap"; $nearPages = 5; //Prologic ?> <div class="pager"> <?php $nearPagesHalf = ($nearPages - 1) / 2; drawNumbers(1, 1); if ($currentPage - $nearPagesHalf <= 0) { } drawNumbers($pages, $pages); ?> <?php function drawNumbers($from, $to) { global $currentPage; for ($i = $from; $i <= $to; $i++) { echo $currentPage; if ($i == $currentPage) { ?> <span class="pageNumbers current"><?= $i ?></span> <?php } else { ?> <a href="#"> <span class="pageNumbers"><?= $i ?></span> </a> <?php } } ?> <?php } function drawDots($from, $to) { } ?> </div>
ПРОБЛЕМА
echo $currentPage; prints 1 function drawNumbers($from, $to) { global $currentPage; echo $currentPage; prints nothing
Бьюсь об заклад, вы выполняете этот код, включив этот файл в другую функцию.
Поэтому вам нужно также отметить global
первичную переменную.
Btw, глобальные переменные странны, более простой и правильный способ передачи данных в функцию – это использование параметров функции.
$currentPage
определенный сверху, не живет в global
пространстве. Почему бы вам просто не передать $currentPage
в качестве первого параметра функции drawNumbers? Это намного чище:
drawNumbers( $currentPage, 1, 1 ); function drawNumbers($currentPage, $from, $to) { // no need define $currentPage here since it's passed }