ホームページ > バックエンド開発 > PHPチュートリアル > 奇妙なことに、この PHP ステートメントは正しいように見えますが、正しい結果を得ることができません。

奇妙なことに、この PHP ステートメントは正しいように見えますが、正しい結果を得ることができません。

WBOY
リリース: 2016-06-13 12:48:35
オリジナル
740 人が閲覧しました

奇妙なことに、この PHP 文は正しいように見えますが、正しい結果が得られません。

<br />
<br />
$screen_w = "<script>document.write(screen.width);</script>";<br />
<br />
if($screen_w < 500){<br />
echo '宽度小于500';<br />
}<br />
else{<br />
echo '大于等于500';<br />
}<br />
<br />
ログイン後にコピー


$screen_w を直接エコーすると、得られる正しい結果は 1366
です。
判定すると、1366 が 500 未満であることがわかります

If (int)$screen_w または intval($screen_w)

そのまま0
と表示されます。
説明は何ですか?


-----解決策--------------------------------
文法上の誤りがなければ、それは「はい」を意味しますよね?

1. jsよりも先にphpが実行される! $screen_w = "<script>document.write(screen.width);</script>"; がデータを取得できるとしても、それは PHP コードが実行された後でのみです。 2. $screen_w = "<script>document.write(screen.width);</script>";
それは何ですか?それは単なる文字列の代入です
echo $screen_w;
を使用しても これはブラウザに表示されるだけです

------解決策---------var_dump 印刷すると、は 46 ビット文字列であり、正規表現を使用して数値を照合し、比較するだけです。

------解決策----------------------まず、どれがクライアントコードであるかを理解する必要がありますこれはサーバー側のコードです。サーバー側のコードが最初に実行され、クライアント側のコードが最後に実行されます。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート