PHP函数(快捷方式)使用

时间:2013-11-15 15:32:15

标签: php function

我在myFile.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();

但是收到错误消息:调用未定义的函数

有关如何达到我的短代码意图的任何帮助?

2 个答案:

答案 0 :(得分: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);

但目前尚不清楚该功能的放置或使用位置,因此请明确指出哪种方式最佳。

答案 1 :(得分: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";       
    }
}