2012-05-06 65 views
0

我有問題在PHP中設置多個用於if statements的變量。轉換一個PHP變量爲會話變量

雖然有我的佈局很多文件,但這些都與這一問題有關的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; 

    } 

的index.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 } ?> 

輸出 enter image description here

即使,佈局寬度落在小類別(您的瀏覽器寬度:872和$ layout變量的值目前很小) ,它仍然顯示它應該只顯示的位是佈局 - 擴展類別正常(正常值是$佈局在會話中的值)

通常情況下,這裏的值是$layout正在被index.php文件中的if statement覆蓋。

我在找什麼?

隨着layoutType我還希望$layout的價值在會話中設置基於core.php的邏輯。這樣我就可以在各種網站上多次使用它if statements

這是非常重要的,因爲這些是我佈局中的varioys小部件/內容,我想根據訪問者的設備加載/未加載。因此,幾乎所有的小丫頭都會被包裝成if statement

請幫忙。

回答

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

結果爲true,因爲它是一個分配(使用=====代替)。您可以在the PHP manual中找到有關比較運算符的更多信息。

+0

是的,這是正確的。有用。謝了哥們。 –