このロジックを理解するのに苦労しています:
JavaScript を使用してブラウザの幅を検出し、次のコードを使用してその値をセッション変数として PHP に渡します。
<?php
session_start()
if (empty($_SESSION['layoutType'])) {
echo '<script type="text/javascript"> var session=false; var layoutType;</script>';
} else {
echo '<script type="text/javascript"> var session=true; var layoutType=' . $_SESSION['layoutType'] . ';</script>';
}
if (!empty($_SESSION['layoutType'])) {
$layoutType = $_SESSION['layoutType'];
if ( $layoutType <= 219 ) {
$layout = 'mobile';
} else if ($layoutType >= 220 && $layoutType <= 1024 ) {
$layout = 'tablet';
} else {
$layout = 'desktop';
}
}
echo $layout;
これにより、ブラウザの幅に応じて値が正しく表示されますmobile
。しかし、同じ変数を使用して上記のコードの下に次のコードを貼り付けようとすると、の値が変更されます。tablet
desktop
$layout
function getFevicons(){
if ( $layout = 'mobile' ); {
echo '
<link rel="apple-touch-icon" href="cdn/images/apple-touch-icon.png">
<link rel="apple-touch-icon" sizes="72x72" href="cdn/images/apple-touch-icon-72.png">
<link rel="apple-touch-icon" sizes="114x114" href="cdn/images/apple-touch-icon-114.png">
';
}
echo $layout;
}
?>
レイアウトはデスクトップ用ですが、出力は次のようになり、上記のファビコンリンクmobile
もエコーします。なんで?
私は何か間違ったことをしていますか?