2016-10-04 76 views
-2

这似乎微不足道,但intval()在以下情况下返回0: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_width2integer而不是string

+0

'intval - 获取变量的整数值,请点击这里> http://php.net/manual/en/function.intval.php 和你的'$ window_width'不包含整数值 – ravisachaniya

+0

您还会发现您正在将客户端脚本与服务器端执行混合在一起。例如'window.innerWidth'将在页面呈现后可用,此后php已经完成了一段时间。因此,这个价值将无法获得,像ajax这样的东西,以及一个不那么理想的数据库。 – ArtisticPhoenix

+0

intval返回整数值。它不会将字符串转换为整数 –

回答

0

$window_width被保持返回不能被转换为string因此0一个string(未window.innerWidth)!

PHP是(被执行之前JavaScript路)上sever执行,从而过来PHP不可能访问window.innerWidth,使用AJAX成发射数据超过PHP

The integer value of var on success, or 0 on failure.

字符串将最有可能返回0虽然这依赖于字符串的最左边的字符。 integer casting的通用规则适用。

0

$window_width不能是1366,因为你在混合使用PHP和Javascript。

PHP在服务器端执行,而JS在用户端。这意味着你不能只使用PHP中的JS值。

+0

这对我来说是1366。 –

+0

https://3v4l.org/GSojX – danopz