2011-01-30 71 views
0

我有许多不同的PHP文件。因为它是一个Wordpress主题,所以我需要将所有函数都包含到类中以避免冲突。将包含的PHP函数添加到类中?

我想要的是将主题名称作为“前缀”(类名的第一部分)。 即使它们在不同的PHP文件中,是否可以为所有函数使用相同的类?

这是怎么回事看起来:

myfunctions.php 
myfunctions_extra.php 

“myfunctions.php” 包括功能test被添加到class my_class

“myfunctions_extra.php”包含功能test2,该功能也应该添加到class my_class

可能吗?怎么样?

+0

为什么不你使用命名空间吗?或者有一个类的方法只是其他文件中函数的别名? – 2011-01-30 20:26:44

回答

0

NO。不在PHP 5.3中。下一个版本将包含特性,这使得它成为可能,但在PHP 5.3中:NO。寻找不同的方法;)

也许你可以使用命名空间,但我不知道Wordpress如何应对它们。

1

或许像inheritance就是你要找的东西。

+1

我会改变说继承。毕竟,这就是它的原因。 – 2011-01-30 20:30:03

+0

事后看来确实更有意义! – Prisoner 2011-01-30 21:13:51

0

有一个主类具有绑定到来自不同类的函数的方法。因此,例如MyClass中的方法create_sidebar()将从其来源的任何文件调用create_sidebar()函数。

0

不幸的是,PHP不支持部分类的概念。你无法通过这种方式解决你的问题。

你真的需要一个类吗?如果你在PHP 5.3上运行,你可以为你的文件定义一个命名空间,但我现在不知道Wordpress是如何与它们一起玩的。

另一种选择是“假的”添加前缀所有的方法命名空间,只保留一个全局变量,如果你需要保持某种状态,就像这样:

$myns_settings = array(..); 

// file1.php 
function myns_firstfunc() 
{ 
    global $myns_settings; 
    // You can access myns_settings here 
} 



// file2.php 
function myns_secondfunc() 
{ 
    global $myns_settings; 
    // You can access myns_settings here as well 
}