mirror of
https://github.com/openvk/openvk
synced 2024-11-15 11:39:13 +03:00
Fix settype to allow Null
This commit is contained in:
parent
ba2e00adac
commit
31f0d184e7
2 changed files with 28 additions and 5 deletions
|
@ -485,8 +485,7 @@ final class Audio extends VKAPIRequestHandler
|
|||
$this->requireUser();
|
||||
$this->willExecuteWriteAction();
|
||||
|
||||
if(!is_null($album_id)) // Думаю ?int $album_id = NULL возвращает 0 из-за ?int
|
||||
if($album_id > 0)
|
||||
if(!is_null($album_id))
|
||||
$this->fail(10, "album_id not implemented");
|
||||
|
||||
// TODO get rid of dups
|
||||
|
|
|
@ -234,8 +234,32 @@ final class VKAPIPresenter extends OpenVKPresenter
|
|||
}
|
||||
|
||||
try {
|
||||
settype($val, $parameter->getType()->getName());
|
||||
// Проверка типа параметра
|
||||
$type = $parameter->getType();
|
||||
if ($type && !$type->isBuiltin()) {
|
||||
$params[] = $val; // Пользовательские типы оставляем как есть
|
||||
} else if (is_null($val)) {
|
||||
$params[] = $val; // Если значение NULL, то оставляем его NULL
|
||||
} else {
|
||||
switch ($type->getName()) {
|
||||
case 'int':
|
||||
$val = (int)$val;
|
||||
break;
|
||||
case 'float':
|
||||
$val = (float)$val;
|
||||
break;
|
||||
case 'bool':
|
||||
$val = (bool)$val;
|
||||
break;
|
||||
case 'string':
|
||||
$val = (string)$val;
|
||||
break;
|
||||
// Добавить другие типы при необходимости
|
||||
default:
|
||||
settype($val, $type->getName());
|
||||
}
|
||||
$params[] = $val;
|
||||
}
|
||||
} catch (\Throwable $e) {
|
||||
// Just ignore the exception, since
|
||||
// some args are intended for internal use
|
||||
|
|
Loading…
Reference in a new issue