2014-10-31 134 views
1

有人可以告訴我我在哪裏搞砸了和/或我該如何解決這個問題?將數組中的整數和字符串結合起來

工作代碼(PHP):

public $data = array(
    .... 
    .... 
    'copyright' => array(
     'es' => '2013 Mi Empresa', 
     'en' => '2013 My Company', 
    ), 
    .... 
    ....  
); 

斷碼:

public $data = array(
    .... 
    .... 
    'copyright' => array(
     'es' => date('Y') . ' Mi Empresa', 
     'en' => date('Y') . ' My Company', 
    ), 
    .... 
    ....  
); 

,當我說壞了,我的意思是導致<body>是空的。我也嘗試加入(string)date('Y')代替date('Y'),無濟於事。

在此先感謝!

+0

你什麼錯誤? – 2014-10-31 00:38:33

+0

PHP連接整數和字符串沒有問題。在這種情況下,它總是將一個整數轉換爲一個字符串。你可以'var_dump(date('Y')。'Mi Empresa');'看看輸出是什麼? – 2014-10-31 00:38:35

+0

這是一個類屬性聲明?不,你不能這樣做,它需要在構造函數中設置 – Ghost 2014-10-31 00:38:38

回答

1

不,你不能設置你的屬性這樣的:

class Test 
{ 
    // this won't work 
    public $data = array(
     'copyright' => array(
      'es' => date('Y') . ' Mi Empresa', 
      'en' => date('Y') . ' My Company', 
     ), 
    ); 

    // even as simple as this 
    public $date_now = date('Y-m-d'); 
} 

引述manual

他們(屬性)通過使用公共的關鍵字之一定義,保護,或私人,然後是一個正常的變量聲明。這個聲明可能包括一個初始化,但是這個初始化必須是一個常量值 - 也就是說,它必須能夠在編譯時進行評估,並且不能依賴運行時信息來進行評估。

它只是意味着PHP在編譯時不會執行這樣的操作;您不能將計算值和函數分配給常量。

設置它的構造函數:

class Test 
{ 
    public $data = array(
     'copyright' => array(
      'es' => '', 
      'en' => '' , 
     ), 
    ); 

    public $date_today = ''; 

    public function __construct() 
    { 
     $this->data['copyright']['es'] = date('Y') . ' Mi Empresa'; 
     $this->data['copyright']['en'] = date('Y') . ' My Company'; 
     $this->date_today = date('Y-m-d'); 
    } 
} 

$test = new Test(); 
echo '<pre>'; 
print_r($test); 

旁註:在沒有錯誤問題的事情的問題是,最有可能的錯誤報告被關閉。 (白色的死亡屏幕)。

始終打開它的發展階段:

error_reporting(E_ALL); 
ini_set('display_errors', '1'); 
相關問題