0

我在 PHP 中设置一个变量以供多次使用时遇到问题if statements

虽然我的布局中有很多文件,但这些是与此问题相关的 3 个文件:

session.php(它实际上是一个 JavaScript 函数,它确定访问者的浏览器宽度,它包含在我的 javascript 文件中,我通过 ajax 调用调用它。但是,由于这与这个问题无关,因此避免混淆和太多此页面上的代码我避免使用该文件。)

<?php
    session_start();
    $_SESSION['layoutType'] = $_REQUEST['layoutType'];  
?>

核心.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>';
    }

    $layout = 'normal';

    if (!empty($_SESSION['layoutType'])) {
       $layoutType = $_SESSION['layoutType'];
       if ( $layoutType <= 219 ) {
          $layout = 'minimal';
       } else if ($layoutType >= 220 && $layoutType <= 1024 ) {
          $layout = 'small';
       } else {
          $layout = 'normal';
       }
    $_SESSION['layout'] = $layout;

    }

索引.php

<?php
include ('core/core.php');


// Function to load all the JavaScript files

getJS();

echo '<div>Your browser width is: ' . $_SESSION['layoutType'] . ' and Value of $layout variable currently is <strong>'.$layout.'</strong></div>'; 

if ($layout = 'normal') { ?>

    <?php echo '<strong>' . $layout . '</strong> is the value of $layout in session'; ?>

    <div id="sidebar">
    <p>Widgets go here</p>
    </div>

<?php } ?>

输出 在此处输入图像描述

即使,布局宽度属于小类别(您的浏览器宽度是:872 并且 $layout 变量的值当前很小),它仍然显示它应该显示的位是布局宽度类别是正常的( normal 是会话中 $layout 的值)

通常这里发生的是文件中的值被$layout覆盖。if statementindex.php

我在寻找什么?

除了layoutType我还希望$layout根据core.php. 这样我就可以在网站上以各种if statements.

这非常重要,因为这些是我的布局中的各种小部件/内容,我想根据访问者的设备加载/不加载。因此,几乎所有的 widhets 都会被包裹到一个if statement.

请帮忙。

4

1 回答 1

4
if ($layout = 'normal') { ?>

评估为真,因为它是一个分配(使用=====代替)。您可以在PHP 手册中找到有关比较运算符的更多信息。

于 2012-05-06T12:41:14.567 回答