JavaScript를 통해 브라우저 시간대를 가져오고 ob_start() 및 ob_get_clean을 사용하여 PHP 변수에서 캡처하려고합니다. ob_get_clean에 의해 설정된 값은 문자열로 표시되지만, PHP에서 int로 캐스팅하려고하면 값은 0으로 변경됩니다.ob_get_clean으로 설정된 php 변수는 문자열이지만 정수로 캐스팅하지 않습니다.
이 문자열 (int) $ offset 또는 INTVAL ($ 오프셋) 또는 오프셋 $ * 1 스트링 (420)으로 시작하지만, 정수로 변환 한 결과가 0
<?php
ob_start();
?>
<script>
var d = new Date();
document.write(d.getTimezoneOffset());
</script>
<?php
$offset = trim(ob_get_clean()); // timezone offset Colorado = 420 minutes
echo $offset; // 420
echo gettype($offset); // string
$offset += 0;
echo gettype($offset); // integer
echo $offset; // shows 0 - I expect the value to be 420
나는 값이 정수로 $ 오프셋 기대 값을 정수로 변경 이제는 일반적인 문자열로 비슷한 코드를 시도했지만 예상되는 결과를 얻었습니다.
$strnum = '530';
echo gettype($strnum); // string
$strnum += 0;
echo gettype($strnum); // integer
echo $strnum; // 530
?>
왜 두 예제가 동일하게 작동하지 않는지 알 수 없습니다.
아웃이 시도 – Jigarb1992