Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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中的Helper类-静态方法与标准函数_Php_Oop - Fatal编程技术网

PHP中的Helper类-静态方法与标准函数

PHP中的Helper类-静态方法与标准函数,php,oop,Php,Oop,如果我想在PHP中创建一个Helper类,哪种方法是最好的/正确的 包含如下静态方法的帮助器类: <?php class Helper { static function helpThis() { // code } static function helpThat() { // code } } ?> <?php function helpThis() { // code } functio

如果我想在PHP中创建一个Helper类,哪种方法是最好的/正确的

包含如下静态方法的帮助器类:

<?php
class Helper {

   static function helpThis() {
      // code
   }

   static function helpThat() {
      // code
   }
}
?>
<?php
   function helpThis() {
      // code
   }

   function helpThat() {
      // code
   }
?>

创建一个PHP文件,其中包含以下一系列函数:

<?php
class Helper {

   static function helpThis() {
      // code
   }

   static function helpThat() {
      // code
   }
}
?>
<?php
   function helpThis() {
      // code
   }

   function helpThat() {
      // code
   }
?>


我想把方法放在类中总是“更好”。它不仅看起来更好,而且在使用类时更容易了解每个函数/方法的功能。例如,您可以创建一个主帮助器类和几个从主类派生的其他帮助器类。一切都准备就绪,清楚地了解它的作用

我建议创建一个类

通过这种方式,您可以避免每次在使用这些函数之前添加
include helper.inc.php


另一方面,类可以是:
Helper::helpThis()
,就是这样。

我可以想出一些很好的理由来选择使用静态方法而不是函数的类

  • 更多上下文。类名本身提供了比函数名更多的上下文。如果您试图为一个函数提供相同的信息,那么最终会得到非常详细的函数名。考虑下面的例子:

    UserTemplateHelper::printId($user);
    // ... 对。。。
    userTemplateHelperPrintId($user);
    
    人们通常做的是变得懒惰,因此函数名通常不像上面显示的那样冗长。这就是为什么您可能最终提供的上下文更少。因此,代码的可读性会降低。另外,如果要将
    UserTemplateHelper
    更改为其他内容,只更改一个类名要比更改许多带有该前缀的函数容易得多

  • 自动加载VS包括。包括和要求通常使应用程序更容易出错。他们也很讨厌使用,因为这只是另一种类型的东西。另外,他们所做的肯定是创建一个可维护性较差的应用程序,因为与一个自动加载相比,您可能会在任何地方都使用include。我认为通常最好是集中逻辑

  • 共享变量。稍后,您可能希望在函数之间共享一些变量。通过声明一个私有静态变量,而不是使用难以调试且通常是邪恶的
    global
    关键字,这样做更容易