Heim  >  Artikel  >  Backend-Entwicklung  >  诡异,这句PHP看起来都对,可是无法得到正确结果。

诡异,这句PHP看起来都对,可是无法得到正确结果。

WBOY
WBOYOriginal
2016-06-23 14:05:27833Durchsuche

$screen_w = "<script>document.write(screen.width);</script>";if($screen_w < 500){echo '宽度小于500';}else{echo '大于等于500';}


直接 echo $screen_w; 可以得到正确结果是 1366

if判断的时候  结果却是  1366小于500

如果 (int)$screen_w   或者  intval($screen_w)

直接显示为0了

何解?


回复讨论(解决方案)

没有语法错误,就表示是对的吗?

1、php 先于 js 执行!即便是 $screen_w = "<script>document.write(screen.width);</script>"; 能得到数据,那也是 php 代码执行完了以后
2、$screen_w = "<script>document.write(screen.width);</script>";
是什么呢?只不过是个字符串赋值
即便有 echo $screen_w;
那也只是在浏览器中显示而已

var_dump打印出来,是46位的字符串,JS代码也算在里面了,用正则把数字匹配出来再比较就可以了。

好像不能匹配,我也不知道怎么把数字弄出来。

我以前也出现这种问题,基础不牢固啊

js   和  php  要分开,

首先要明白哪些是客户端的代码,哪些是服务端的代码,二服务端的代码是优先执行的,客户端的是后执行的

可是  php无法获取屏幕宽度啊   我想写一句判断  屏幕宽度小于主内容宽度时就不输出一个会挡住内容的浮动条

这些问题几乎是新手必经之路,十数年如是(偶当年也不例外,呵呵),为啥各种教材都不把这个写一写?

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn