2016-10-04 5 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_width20입니다.

$window_width2integer이 아니라 이 필요합니다.

+0

'intval - 변수의 정수 값을 얻으십시오 ', 여기를 확인하십시오.> http://php.net/manual/en/function.intval.php 그리고'$ window_width'에는 정수 값이 포함되어 있지 않습니다. – ravisachaniya

+0

클라이언트 측 스크립트와 서버 측 실행을 혼합하는 경우도 있습니다. 예를 들어, 페이지가 렌더링 된 후에'window.innerWidth'가 사용 가능 해지고, 그 후 포인트 php는 이미 언젠가 끝났습니다. 따라서 그 가치는 아약스와 같은 것, 그리고 그다지 이상적이지 않은 데이터베이스를 사용할 수 없을 것입니다. – ArtisticPhoenix

+0

intval은 정수 값을 반환합니다. 문자열을 정수로 변환하지 않습니다. –

답변

0

$window_widthstring (되지 window.innerWidth) string 따라서 0로 변환 할 수있는이 반환 보유!

PHP은 (JavaScript이 실행되기 전에 길) sever에서 실행 그래서 PHP을 통해 데이터를 방출하는 AJAX를 사용, PHP을 통해 액세스 window.innerWidth하는 것은 불가능하다.

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

문자열 거의 확실 반환 0이 문자열의 가장 왼쪽 문자에 달려 있지만. integer casting의 일반적인 규칙이 적용됩니다.

0

$window_width은 PHP와 Javascript를 혼합하기 때문에 1366 일 수 없습니다.

PHP는 서버 측에서 실행되는 반면 JS는 사용자 측에서 실행됩니다. 이것은 PHP에서 JS의 값을 사용할 수 없다는 것을 의미합니다.

+0

1366입니다. –

+0

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