2013-11-15 103 views
0

我在myFile.php設置此功能:PHP功能(快捷方式)使用

function monthLanguage() 
{ 
    if ($this->lang=='italian')//this statement is requared many times within the file! 
    { 
     $dayName[]="Dom"; 
     $dayName[]="Lun"; 
     $dayName[]="Mar"; 
     $dayName[]="Mer"; 
     $dayName[]="Gio"; 
     $dayName[]="Ven"; 
     $dayName[]="Sab"; 
    }else 
    {  
     $dayName[]="Sun"; 
     $dayName[]="Mon"; 
     $dayName[]="Tue"; 
     $dayName[]="Wed"; 
     $dayName[]="Thu"; 
     $dayName[]="Fri"; 
     $dayName[]="Sat";  
    } 
} 

我就在想這個if語句來包裝成一個函數來調用它在需要作爲一種短碼。

我這樣稱呼它:

monthLanguage(); 

但我收到錯誤消息:調用未定義功能

就如何實現我的短代碼意圖的任何幫助嗎?

+1

由於您在代碼中使用了'$ this',我將假設它是在一個類中。如果你在類中調用它,使用'$ this-> monthLanguage();'else'$ classInstantiator-> monthLanguage();'。 –

+0

你可以添加調用它的代碼嗎?是類中的月語言,因爲它似乎是你使用$這 – wgcrouch

+0

並確保你包含該文件 – GiveMeAllYourCats

回答

1

你是否在包含monthLanguage函數的函數中使用它的文件?另外,我發現這個代碼有兩個問題。您沒有啓動array,調用$dayName,因此不會返回任何內容,因此該功能不會發回輸出。它應該是這樣的。

function monthLanguage() 
{ 
    $dayName = array(); 
    if ($this->lang=='italian')//this statement is requared many times within the file! 
    { 
     $dayName[]="Dom"; 
     $dayName[]="Lun"; 
     $dayName[]="Mar"; 
     $dayName[]="Mer"; 
     $dayName[]="Gio"; 
     $dayName[]="Ven"; 
     $dayName[]="Sab"; 
    }else 
    {  
     $dayName[]="Sun"; 
     $dayName[]="Mon"; 
     $dayName[]="Tue"; 
     $dayName[]="Wed"; 
     $dayName[]="Thu"; 
     $dayName[]="Fri"; 
     $dayName[]="Sat";  
    } 
    return $dayName; 
} 

此外,$this不明確,因爲這通常是在一個類的範圍使用,所以也許你需要設置這樣的功能:

function monthLanguage($lang) 
{ 
    $dayName = array(); 
    if ($lang=='italian')//this statement is requared many times within the file! 
    { 
     $dayName[]="Dom"; 
     $dayName[]="Lun"; 
     $dayName[]="Mar"; 
     $dayName[]="Mer"; 
     $dayName[]="Gio"; 
     $dayName[]="Ven"; 
     $dayName[]="Sab"; 
    }else 
    {  
     $dayName[]="Sun"; 
     $dayName[]="Mon"; 
     $dayName[]="Tue"; 
     $dayName[]="Wed"; 
     $dayName[]="Thu"; 
     $dayName[]="Fri"; 
     $dayName[]="Sat";  
    } 
    return $dayName; 
} 

然後你會召喚功能在PHP這樣的:

monthLanguage($this->lang); 

或者這樣:

monthLanguage($lang); 

但是,目前還不清楚這個函數在哪裏放置或使用,所以澄清,以決定哪個是最好的處理方式。

0

我不認爲你可以使用$ this-> lang - 如果我沒有弄錯,它通常是保留給方法的。

嘗試用此替換功能,應該像魅力一樣工作。

function monthLanguage($lang) { 
    if ($lang=='italian')//this statement is requared many times within the file! 
    { 
     $dayName[]="Dom"; 
     $dayName[]="Lun"; 
     $dayName[]="Mar"; 
     $dayName[]="Mer"; 
     $dayName[]="Gio"; 
     $dayName[]="Ven"; 
     $dayName[]="Sab"; 
    }else 
    {  
     $dayName[]="Sun"; 
     $dayName[]="Mon"; 
     $dayName[]="Tue"; 
     $dayName[]="Wed"; 
     $dayName[]="Thu"; 
     $dayName[]="Fri"; 
     $dayName[]="Sat";  
    } 
} 
+0

* $ this-> lang - 如果我沒有弄錯它通常保留一種方法。* - 你誤會了。 – nickb

+0

謹慎闡述? – Andy