2017-04-21 59 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); 
    } 

}