2014-01-07 127 views
0

我有一個函數在腳本中多次調用。從函數返回的值將始終相同。我寧願每次都不執行函數內的所有腳本,因爲返回的值始終是相同的。我沒有使用OOP,因此無法將其分配給對象屬性,並在構造函數中執行腳本。在PHP函數中保留變量值

以下是我的嘗試。它不起作用,因爲$狀態沒有被設置,直到它稍後被定義爲一個靜態變量。我怎樣才能實現我的目標?

function checkStatus() 
{ 
    if(!isset($status)) 
    { 
     //Do some script to determine $cond 
     if($cond) {static $status=0;} 
     else {static $status=1;} 
    } 
    return $status; 
} 
+1

如果返回值是始終不變的,是什麼目的功能? – showdev

+0

您需要此功能範圍外的某個位置*以保存該值。全局變量或會話可以工作。 –

+0

@showdev。該值將爲0或1,但隨後每調用一次,它將始終保持不變。 – user1032531

回答

1

這應該做你需要的東西:

function checkStatus() 
{ 

    static $status; 

    if(!isset($status)) 
    { 

    if (TRUE) // Whatever your truth condition will be 
    { 
     $status = 1; 
    } 

    else 
    { 
     $status = 0; 
    } 

    } 

    return $status; 

} 
+0

我只是想出了這個,並測試它,它的工作原理。謝謝! – user1032531

0

您可以通過引用傳遞變量:http://www.php.net/manual/en/language.references.pass.php

function checkStatus(&$status) 
{ 
    //Do some script to determine $cond 
    if($status == 0) { 
     $status=1; 
    } 
    else { 
     $status=0; 
    } 
    } 

$status = 0; 
checkStatus($status); 
echo $status; //this should display 1;