2014-04-21 87 views
0

目前我設置一個數組這個樣子......PHP使用變量

public function setup_array() 
{ 
    $columns = array(
     'date1' => '2014-01-24', 
     'date2' => '2014-02-14', 
     'date3' => '2014-03-11', 
     'date4' => '2014-04-01' 
    ); 
    return $columns; 
} 

這工作,但我想使用在的地方像這樣的日期已經設置的變量是什麼。 ..

public function setup_array() 
{ 
    $columns = array(
     'date1' => '$date1', 
     'date2' => '$date1', 
     'date3' => '$date1', 
     'date4' => '$date1' 
    ); 
    return $columns; 
} 

我試圖做到這一點的,雖然在$日期變量是avaliable和設置,實際上它打印$ date1的替代或檢索變量值本身。

我在做什麼錯?

+1

'「日期1」 => $ date1' - 無報價 – michaelward82

+1

你$ date1的變量將需要從功能的範圍內訪問 –

回答

1

刪除引用

public function setup_array($date1) 
{ 
    $columns = array(
     'date1' => $date1, 
     'date2' => $date1, 
     'date3' => $date1, 
     'date4' => $date1 
    ); 
    return $columns; 
} 
+0

你應該解釋你改變,你爲什麼這樣做 –

+0

其好的...謝謝你 –

4
  1. 單引號將導致解釋字符串,因爲它是,從字面上。使用雙引號。
  2. 沒有任何傳遞的參數 - $date1在函數範圍內是未知的,因此不會被替換。

    public function setup_array($date1) 
    { 
        $columns = array(
         'date1' => $date1, 
         'date2' => $date1, 
         'date3' => $date1, 
         'date4' => $date1 
        ); 
        return $columns; 
    } 
    
  3. 在你的情況下,由於你使用的是變量,所以不需要雙引號。
2

刪除引用

public function setup_array($date1) 
{ 
    $columns = array(
     'date1' => $date1, 
     'date2' => $date1, 
     'date3' => $date1, 
     'date4' => $date1 
    ); 
    return $columns; 
} 
0

刪除單引號

public function setup_array() 
{ 
    $columns = array(
     'date1' => $date1, 
     'date2' => $date1, 
     'date3' => $date1, 
     'date4' => $date1 
    ); 
    return $columns; 
} 

說明:

$expand=1;$either=2; 
echo 'Variables do not $expand $either'; 
// Outputs: Variables do not $expand $either 

echo "Variables do not $expand $either"; 
// Outputs: Variables do not 2 1 

更多詳細信息String PHP

+0

...並加倍。搞笑 –

+0

嗯做同樣的事情兩次期待不同的結果..我知道一個定義:P – juanmf

0

您需要了解PHP語法

第一個示例中的引號並不意味着「用作數組值的東西」,而是常規的字符串分隔符。即這些引號屬於字符串,而不是數組。

0

還要注意的是\日期時間不具有__toString()方法,因此,如果$ date1的是\日期時間的一個實例,則必須調用$date1->format('Y-m-d')

public function setup_array($date1) 
{ 
    $columns = array(
     'date1' => $date1->format('Y-m-d'), 
     'date2' => $date1->format('Y-m-d'), 
     'date3' => $date1->format('Y-m-d'), 
     'date4' => $date1->format('Y-m-d'), 
    ); 
    return $columns; 
} 

否則它會拋出一個\中的異常回聲或鑄造到字符串.. 如果$ date1是標量可以使用雙引號「$ date1」,它應該仍然工作。 參見[http://www.php.net/manual/es/class.datetime.php]