@accountnujen

Что не так с json и есть ли отличия между 300 и (int)$a, если $a = «300»?

сервис от меня требует json. Я ему его даю:
if (isset($_GET['maxwidth']) && is_numeric($_GET['maxwidth'])) {
    $qwidth = (int)$_GET['maxwidth'];
} else 
if ($opti['width'] > 0){
    $qwidth = (int)$opti['width'];
} else {
    $qwidth = 600;
}

$qheight = (int)$opti['height'];

$json_response = [
    "type"             => "rich",
    "height"           => $qheight, // 284
    "width"            => $qwidth, // 600
    "html"             => "<iframe src='https://$addr/iframe/$hash' datetime='now' frameborder='0'></iframe>"];

     header('Content-Type: application/json');
     echo json_encode($json_response);


$qheight и $qwidth - это какие-то числа. Допустим 284 и 600, соответственно. Если сервис получает данные, которые ему по какой-то причине не нравятся, то он пытается посчитать их сам. Считает он криво, поэтому я пытаюсь добиться, чтобы он брал мои. Но появляется проблема. Если я ему напишу
"height"           => $qheight, 
"width"            => $qwidth,

то сервис вернёт свои результаты, но если я напишу вот так:
"height"           => 284, 
"width"            => 600,

то он примет мои........

Если сделать var_dump с переменными и var_dump с числами, то вернутся одинаковые данные:
array(5) {
  ["type"]=>
  string(4) "rich"
  ["version"]=>
  string(3) "1.4"
  ["height"]=>
  int(284)
  ["width"]=>
  int(600)
  ["html"]=>
  string(116) "<iframe src='https://......fa' datetime='now' frameborder='0'></iframe>"
}

Что ъ не так?
  • Вопрос задан
  • 95 просмотров
Решения вопроса 1
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Сравнивайте не var_dump(), а результаты json_encode(). Вот тогда и увидете в чём разница.

Ну или
"height"           => intval($qheight),
"width"            => intval($qwidth),
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
Если сделать var_dump с переменными и var_dump с числами, то вернутся одинаковые данные:

Разумеется, это не так.
Весь этот вопрос - сплошная путаница и какие-то дикие суеверия.
Сначала заявление что строки и числа var_dump выводит одинаково, потом вдруг что пробел имеет какое-то значение.

Вам надо обязательно научиться проверять свои догадки. Причем проверять надёжно, а не как сейчас - тяп-ляп.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы