PHP intval() возвращает 0

#javascript #php #string #integer

#javascript #php #строка #целое число

Вопрос:

Это может показаться тривиальным, но intval() возвращает 0 в следующем случае:

 $window_width = "<script type='text/javascript'>document.write(window.innerWidth);</script>";
$window_width2 = intval($window_width);
echo $window_width2; 
  

$window_width будет "1366" .

$window_width2 будет 0 .

Мне нужно $window_width2 быть integer , а не string .

Комментарии:

1. intval — Get the integer value of a variable , пожалуйста, проверьте здесь > php.net/manual/en/function.intval.php и ваш $window_width не содержит целочисленного значения

2. Вы также обнаружите, что вы смешиваете сценарии на стороне клиента с выполнением на стороне сервера. Например window.innerWidth , будет доступно после рендеринга страницы, после чего php уже некоторое время завершен. Таким образом, это значение не будет доступно для него, обнажая что-то вроде ajax и базу данных, которая менее идеальна.

3. intval возвращает целочисленное значение. он не преобразует строку в целое число

4. @OwaisArain — вы ошибаетесь, он преобразует строку в целое число, такое как intval('1') действительно станет 1 , однако <script></script> не является числом, а затем станет 0

5. Я думаю, что у меня это получилось. Большое спасибо!

Ответ №1:

$window_width содержит string (не window.innerWidth ), который не может быть преобразован в string , следовательно 0 , возвращается!

PHP выполняется (задолго до выполнения), поэтому к нему невозможно получить доступ, используйте для передачи этих данных. sever JavaScript window.innerWidth PHP AJAX PHP

Целочисленное значение var при успешном выполнении или 0 при сбое.

Строки, скорее всего, вернут 0, хотя это зависит от крайних левых символов строки. Применяются общие правила приведения целых чисел.

Ответ №2:

$window_width не может быть 1366, потому что вы смешиваете PHP и Javascript.

PHP выполняется на стороне сервера, в то время как JS находится на стороне пользователя. Это означает, что вы не можете просто использовать значения из JS в PHP.

Комментарии:

1. Для меня это 1366.