if if 조건을 검사하고 싶습니다.0 값에 대한 조건 검사
if(isset($_GET['q']))
{
echo "ok";
}
esle
{
echo "not ok";
}
$ _GET [ 'q'] = 0이면 다른 부분으로 보내주십시오.
하지만 들어가고 싶습니다.
$ _GET [ 'q']가 0 일지라도 값을 가져야합니다. ok
도움이 필요하십니까?
if if 조건을 검사하고 싶습니다.0 값에 대한 조건 검사
if(isset($_GET['q']))
{
echo "ok";
}
esle
{
echo "not ok";
}
$ _GET [ 'q'] = 0이면 다른 부분으로 보내주십시오.
하지만 들어가고 싶습니다.
$ _GET [ 'q']가 0 일지라도 값을 가져야합니다. ok
도움이 필요하십니까?
이 isset
가하는 일입니다. 시도해보십시오.
$x["q"] = 0;
var_dump(isset($x["q"]));
사실을 알 수 있습니다. isset()
이 0
에 false
을 반환한다고 생각하면 잘못된 장소를보고 다른 곳에있는 버그를 찾으십시오.
0 당신은 당신이 원하는 값이
if(isset($_GET['q']) && intval($_GET['q']) > 0)
{
echo "ok";
}
else
{
echo "not ok";
}
아마도 array_key_exists()
이 더 적합 할 것이다 정수 고려 이런 일을해야 할 수도 있습니다 http://php.net/manual/en/function.isset.php
널 (null)이 아닙니다. 나는 이것이 올바른 생각
if (array_key_exists('q', $_GET)) ...
'$ _GET '값은 "설정되지 않음"이거나 "널 (null)"이 아닌 값을 가질 수 있습니다. 따라서'array_key_exists'와'isset'을 사용하면 동일한 결과를 얻을 수 있습니다. – deceze
첫 번째 문장의 의미를 정확하게 알지 못합니다. 그러나 나는 빠른 테스트를했고, 내가 말할 수있는 한, 당신은 두 번째 문장에서 정확합니다. 나는 op가 @prodigitalson이 제안하는대로 이상한 일들이 벌어 질 수도 있다고 생각한다. –
첫 문장 :'foo.php?'''$ _GET [ 'q']'는 * 설정되어 있지 않습니다,'foo.php? q' →'$ _GET [ 'q'] === '''. 값은 * 설정되지 않음 *이거나 일부 값을가집니다. 그것은 결코 'null'이 될 수 없다. 따라서,'isset'과'array_key_exists'는 아무런 차이가 없습니다. – deceze
...
if(array_key_exists('q', $_GET)){
echo "ok";
}
else{
echo "not ok";
}
그렇게해서는 안됩니다. "set"변수 중'null' 값은 "not set"으로 계산되며, "0"은 반드시 "설정"되어야합니다. 'var_dump ($ _ GET [ 'q'])를 시도하십시오. – deceze
제쳐두고 양식을 당신이 여기에있다 (문제가 그들이 당신에게 구문 오류를 줄 것이다 원인) arent 작동합니다. '$ _GET [ 'q']'가'$ _POST'가 아니거나'$ _GET [ 'Q']'로 전달되었다고 확신합니까? – prodigitalson