проблем с isset()

ventsi34

Registered
Здравейте, проблема ми е много странен когато сложа isset функция на масивът $_GET['page'] примерно и ако информацията, която съдържа масива е била примерно 12 става автоматично 1
 
PHP:
$string = (isset($_GET['page']) ? $_GET['page'] : 'Не е избрано';
echo $string;
Или
PHP:
if (isset($_GET['page']))
{
echo $_GET['page'];
}
else
{
echo 'Не е избрано';
}
Също може по-кратко
PHP:
if (isset($_GET['page']))
echo $_GET['page'];
else
echo 'Не е избрано';
 
Ev0luti0N каза:
PHP:
$string = (isset($_GET['page']) ? $_GET['page'] : 'Не е избрано';
echo $string;
Или
PHP:
if (isset($_GET['page']))
{
echo $_GET['page'];
}
else
{
echo 'Не е избрано';
}
Също може по-кратко
PHP:
if (isset($_GET['page']))
echo $_GET['page'];
else
echo 'Не е избрано';

Аз бих направил
$string = (isset($_GET['page']) ? (int) $_GET['page'] : 0;

че ще го използва по-натаък в някоя заявка и ще има "Дава ми грешка"
 
palex каза:
Ev0luti0N каза:
PHP:
$string = (isset($_GET['page']) ? $_GET['page'] : 'Не е избрано';
echo $string;
Или
PHP:
if (isset($_GET['page']))
{
echo $_GET['page'];
}
else
{
echo 'Не е избрано';
}
Също може по-кратко
PHP:
if (isset($_GET['page']))
echo $_GET['page'];
else
echo 'Не е избрано';

Аз бих направил
$string = (isset($_GET['page']) ? (int) $_GET['page'] : 0;

че ще го използва по-натаък в някоя заявка и ще има "Дава ми грешка"
Ако ще изброяваме кое е най-добре доста по-добре може да се направи от това:
PHP:
if (isset($_GET['page']))
{
$page = (int)$_GET['page'];
$page = ($page > 0) ? $page : 0;
echo $page;
}
else
echo 0;
 
Ev0luti0N благодаря ти много но ще бъдеш ли така любезен да ми обясниш синтакса на този ред

Код:
$string = isset($_GET['page']) ? $_GET['page'] : 'Не е избрано';

как го чете php и какво означава точно и +1
 
ventsi34 каза:
Ev0luti0N благодаря ти много но ще бъдеш ли така любезен да ми обясниш синтакса на този ред

Код:
$string = isset($_GET['page']) ? $_GET['page'] : 'Не е избрано';

как го чете php и какво означава точно и +1
Пише се: $string = (isset($_GET['page'])) ? $_GET['page'] : 'Не е избрано';
Това ти е точно като if, само че спестяваш код и всички стой на 1 пробменлива. Проверавя дали е зададено $_GET['page'] с isset, след това ако е зададено се пише след ? това което искаш да ти съдържа $string и ако не е зададено пишеш след : това което искаш да ти съдържа $string.
В момента ти работи така: Проверява дали е зададено $_GET['page'] ако е зададено ти присвоява стойноста на $_GET['page'], ако не е зададено ти присвоява Не е избрано. Така само трябва да напишеш echo $string и една от двете стойности ще ти я изведе, без да правиш if без else :?:
 
ventsi34 каза:
Ev0luti0N благодаря ти много но ще бъдеш ли така любезен да ми обясниш синтакса на този ред

Код:
$string = isset($_GET['page']) ? $_GET['page'] : 'Не е избрано';

как го чете php и какво означава точно и +1
Това означава че ако е сетната page в url-a $string ще я вземе, ако не ще $string ще е 'Не е избрано' :)
 
Та по въпроса на човека. Синтаксиса на това "нещо" е:

PHP:
$var = (УСЛОВИЕ) ? TRUE : FALSE;
 

Back
Горе