【发布时间】:2011-10-27 06:00:30
【问题描述】:
我想创建一个辅助类,其中包含 cleanArray、split_char、split_word 等方法。
它自己的帮助类将与许多类一起使用。示例:
Class A will user Helper, Class B, Class C, D, E also user Helper Class
在 PHP 中编写和使用帮助类的最佳方法是什么?
我所知道的是 OOP 的基本知识,在每个使用 Helper 类的 Class 中都必须创建一个 helper 对象。
$helper = new Helper();
这是正确的,或者可能有人可以给我最好的方法来做到这一点。
我还将创建可能使用 A、B、C 类等的 XXX 类。
更新: ->修复了我在 split_word 方法中的错误:D
根据 Saul、Aram Kocharyan 和 alex 的回答,我修改了我的代码,但它不起作用,我不知道为什么。
<?php
class Helper {
static function split_word($text) {
$array = mb_split("\s", preg_replace( "/[^\p{L}|\p{Zs}]/u", " ", $text ));
return $this->clean_array($array);
}
static function split_char($text) {
return preg_split('/(?<!^)(?!$)/u', mb_strtolower(preg_replace( "/[^\p{L}]/u", "", $text )));
}
}
?>
我在其他类中使用
<?php
include "Helper.php";
class LanguageDetection {
public function detectLanguage($text) {
$arrayOfChar = Helper::split_char($text);
$words = Helper::split_word($text);
return $arrayOfChar;
}
}
$i = new Detection();
print_r($i->detectLanguage("ab cd UEEef する ح خهعغ فق 12 34 ٢ ٣ .,}{ + _"));
?>
【问题讨论】:
-
A、B、C、D、E 类在做什么?他们的责任是什么?
-
我发现这个链接net.tutsplus.com/tutorials/php/… 很好的教程,只是创建一堆函数,而不是在类内部或类内部的静态方法。你怎么看?
-
它不起作用,因为您定义了一个名为 LanguageDetection 的类并尝试实例化一个名为 Detection 的类