Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP保护的java风格_Php_Oop - Fatal编程技术网

PHP保护的java风格

PHP保护的java风格,php,oop,Php,Oop,我有一个功能需要由几个类共享,这些类管理我的软件的一个公共方面。在Java中,我将所有这些类都放在同一个包中,公共功能将在助手类中的受保护方法中 在PHP中,受保护的方法意味着您只能在子类中使用它,因此我当前的解决方案是保护该方法,并让所有需要该方法的类扩展helper类。我目前的解决方案的问题是,你不能继承多个类,所以让我们假设我需要帮助类,im 那么,有没有一种方法可以使方法的可见性与PHP中受保护的java相当?如果没有,有什么更干净的方法来解决我的问题吗?听起来你想使用traits 这

我有一个功能需要由几个类共享,这些类管理我的软件的一个公共方面。在Java中,我将所有这些类都放在同一个包中,公共功能将在助手类中的受保护方法中

在PHP中,受保护的方法意味着您只能在子类中使用它,因此我当前的解决方案是保护该方法,并让所有需要该方法的类扩展helper类。我目前的解决方案的问题是,你不能继承多个类,所以让我们假设我需要帮助类,im


那么,有没有一种方法可以使方法的可见性与PHP中受保护的java相当?如果没有,有什么更干净的方法来解决我的问题吗?

听起来你想使用traits

这将允许您定义共享受保护的方法,并提供给需要它的类。我建议用一个接口来实现它,这样您就可以指定trait提供的方法必须在那里


PHP只允许您扩展一个抽象类,但您可以实现多个接口。

听起来您希望使用traits

这将允许您定义共享受保护的方法,并提供给需要它的类。我建议用一个接口来实现它,这样您就可以指定trait提供的方法必须在那里

PHP只允许您扩展一个抽象类,但是您可以实现多个接口。

您可以尝试名称空间(5.3)并引用实用程序类,而不是扩展它。这并不能完全解决问题,但它确实有助于隔离类。我尽量避免使用私有方法

在PHP5.4中,他们添加了允许类扩展多个类的特性。Schleis已经回答了这个问题。

您可以尝试名称空间(5.3)并引用实用程序类,而不是扩展它。这并不能完全解决问题,但它确实有助于隔离类。我尽量避免使用私有方法


在PHP5.4中,他们添加了允许类扩展多个类的特性。Schleis已经回答了这个问题。

推荐阅读:和链接问题。您是否试图创建一个只为某些类共享的方法?只是说,这不是受保护的可见性,而是包可见性…@AlmaDoMundo是的,我正在尝试创建一个只为某些类共享的方法。@HenriqueBarcelos是的,我想我们可以将其称为包可见性:推荐阅读:和链接问题。您是否正在尝试创建一个只为某些类共享的方法?只是说,您要找的不是受保护的可见性,这是包可见性…@AlmaDoMundo是的,我试图创建一个只为某些类共享的方法。@HenriqueBarcelos是的,我想我们可以称之为包可见性,这对我来说似乎是一个非常干净的解决方案+1对我来说,这似乎是一个非常干净的解决方案+1.