2017-04-21 58 views
0

我需要從一個單獨的類文件中調用一個函數,讓說:PHP調用函數/方法

class Functions { 

    public function seoUrl($string) 
    { 
     $string = strtolower($string); 
     $string = preg_replace("~[^\p{L}\p{N}\n]+~u", "-", $string); 
     $string = preg_replace("/[\s-]+/", " ", $string); 
     $string = preg_replace("/[\s_]/", "-", $string); 
     return $string; 
    } 

} 

我想Functions::seoUrl()是在另一個類文件中稱:

class Product { 

    public function goto_url($url) 
    { 
     return Functions::seoUrl($url); 
    } 

} 

我得到錯誤:

Fatal error: Class 'Functions' not found in C:\xampp\htdocs...

+0

在php中不是太好,但有幾個問題可以幫助回答問題。是另一個文件中的類嗎?而你試圖調用的函數似乎不是一個靜態函數,這意味着它不應該工作,除非你實例化它。 –

+0

您是否使用'require'來加載你的類'Functions'? – tcPeng

+0

@ A.Lau謝謝你,我有'public static function seoUrl($ string)',現在我可以在不同的類中使用所有方法。 –

回答

1

功能:: seoUrl()是調用靜態方法的方式。需要聲明的方法seoUrl(串)爲靜態的,或者爲你的功能類

$functions = new Functions(); 
$functions->seoUrl(string); 
1

在這裏,你獲得致命創建一個對象,只是因爲你PHP無法找到class Functions對於這一點,你有兩個選擇要麼你require該文件或爲此添加一些autoloading

<?php 

require_once 'Functions.php'// where your Class functions resides. 

class Product 
{ 

    public function goto_url($url) 
    { 
     return Functions::seoUrl($url); 
    } 

}