4

在创建具有诸如从字符串中去除空格之类的方法的辅助类时,您将方法创建为函数static还是非static函数?

此外,如果静态方法要调用do_magic()类中的另一个函数,该函数应该如何定义为(静态或非静态?)我们必须使用self::吗?

class Helper {
    public static strip_whitespace() {
        // do some magic
        self::do_magic();

    }

    private do_magic() {
        // magic
    }
}
4

1 回答 1

6

使它们都成为静态的。静态方法适用于不依赖于正在创建的类的实例的函数,这就是您在这里所做的。

class Helper {
    public static strip_whitespace($string) {
        // do some magic
        return self::do_magic();

    }

    private static do_magic() {
        // return magic
    }
}

$result = Helper::strip_whitespace("  I'm a string!  ");
于 2013-03-05T15:13:44.240 回答