什么是声明函数时'静态'的含义

时间:2010-10-27 16:18:43

标签: php class

这是教程书中的代码。

class user {
    // return if username is valid format
    public static function validateUsername($username){
        return preg_match('/^[A-Z0-9]{2,20}$/i', $username);
    }
}

我想知道,静态的功能是什么?

这本书太糟糕我读过的书没解释:(

3 个答案:

答案 0 :(得分:11)

最终的结果是你不需要创建一个类的实例来执行该函数(除此之外还有更多,但我会让手册覆盖这些部分):

PHP: Static Keyword - Manual

在您的示例中,您可以将您的功能称为:

user::validateUsername("someUserName");

而不是必须创建一个实例然后调用该函数:

$user = new user();
$user->validateUsername("someUserName");

答案 1 :(得分:1)

你见过这个:http://php.net/manual/en/language.oop5.static.php

  

静态方法和变量是   想要分享时很有用   a。对象之间的信息   上课,或者想表达一些东西   那与班级本身有关,   没有任何特定的对象。

来源:http://bytes.com/topic/php/answers/495206-static-method-vs-non-static-method

答案 2 :(得分:0)

静态函数是属于类的函数,而不是对象实例。可以通过直接引用它来实现它们而不实例化 -

user::validateUsername(...);

或使用课堂内的self关键字

self::validateUsername(...);

静态函数在某种程度上是全局函数。您应该谨慎使用这些,因为静态函数的依赖性更难以提取并使测试和重用更加困难。

阅读PHP手册中的更多内容 - the static keyword