У меня есть простой вопрос, но я не могу найти ответа на него. У меня есть такой код:
$app->put('/user/', function () use ($app) {
$isValid = true;
$message = null;
$newuserID = null;
$session_token = null;
$jsonUserData = $app->request->put('user');
if(!isset($jsonUserData) ){
$isValid = false;
$message = 'er ging iets mis';
}else{
//handle rest of code.
}
}
will isset($jsonUserData)
всегда возвращает true, потому что я объявляю его с
$jsonUserdata = $app->request->put('user');
или он вернется как false, если $app->request->put('user');
был пуст
Тонкие документы api говорят, что он обрабатывает свои переменные с помощью
Если переменная не существует, каждый метод выше возвращает null. Вы также можете вызывать любую из этих функций без аргумента для получения массива всех переменных данного типа:
См. Документацию по адресу php.net/manual/en/function.isset.php.
Иссет просто проверяет, существует ли переменная, а не ее содержимое. поэтому, если есть какая-либо строка кода с
$XX = ...
isset($XX); // will return true.
Вы можете использовать:
if(!isset($jsonUserData) || $jsonUserData == null){
...
}
Исключение: вы можете уничтожить переменные с unset ($ XX). Тогда isset вернет false, потому что эта переменная больше не существует.
bool isset ( mixed $var [, mixed $... ] ) Determine if a variable is set and is not NULL.
так || json/userdata == null
не требуется
$app->request->put