Здравствуйте, помогите реализовать сабжик, пробою и не получается. Вобще скажем на главной странице я вывожу 10 новостей, при выборе количества новостей к урлу добавляю num=20 т.е. что то вроде того: site.ru/index.php?num=20 Так вот, не получается у меня сделать привило если num = 0 (или же его нет) т.е. site.ru/index.php или site.ru/index.php?num=0 то выводим по 10 новостей, а если он есть то выводим столько новостей сколько он содержит. Делаю так, пишу функцию: Код (Text): function number(){ $num = $_GET['num']; if ($num. '== 0'){ echo $num; }else{ echo '10'; } } Поправил пост
Переделал, сделал так Код (Text): $num = $_GET['num']; function number () { global $num; if ($num == 0){ echo $num; }else{ echo '10'; } } Есть функция post которая выводит новости и в ней подключаю так Код (Text): function post() { global $nav, $number; datebase(); $sql = mysql_query(" SELECT * FROM news ORDER BY id DESC LIMIT $nav,$number"); ...... Вобще не пашет =(
Код (Text): function number () { global $num; // Если $_GET['num'] - не целое число или равно 0 if ( !is_int($_GET['num']) && empty($_GET['num']) ){ $num = 10; }else{ // Приравниваем глобальную переменную $num к $_GET['num'] $num = $_GET['num']; } }
код верный, как и где вы используете функцию number? и в вашей функции post я не увидел использования переменной $num
NeoXidant, В $_GET ($_POST, $_COOKIE, ...) всегда строки текста. Даже если там число 7 - это будет не число, а строка текста "7". Соответственно, Код (PHP): is_int($_GET['num']) будет при любом раскладе возвращать false.
действительно, тогда так Код (Text): function number() { global $num; // Если $_GET['num'] - не существует / равно нулю или не является числом if ( !isset($_GET['num']) || !is_numeric($_GET['num']) ){ $num = 10; }else{ // Приравниваем глобальную переменную $num к целому значению от $_GET['num'] $num = (int)$_GET['num']; } }