php静态函数,查询数据库

时间:2014-03-05 23:08:09

标签: php mysql methods pdo static

我想更多地了解static。如果我的课程中有一些静态函数:

<?php
class Input {
public function exists($type = 'post') {
    switch($type) {
        case 'post':
            return (!empty($_POST)) ? true : false;
        break;
        case 'get':
            return (!empty($_GET)) ? true : false;
        break;
        default:
            return false;
        break;
    }
}

public static function get($item) {
    if(isset($_POST[$item])) {
        return $_POST[$item];
    } else if(isset($_GET[$item])) {
        return $_GET[$item];
    }
    return '';
}
}

spl_autoload_register我可以使用Input :: get($ item)访问函数;使用非静态函数时,我需要使用$input = new Input();对其进行实例化,然后可以使用$ input-&gt; exists();

来访问函数

所以,我没有区别。我可以从static方法查询数据库吗? __constructor有效吗?

我无法在网上找到任何明确的答案。

1 个答案:

答案 0 :(得分:0)

当它们不依赖于任何特定对象实例的属性时,可以使用静态方法。当需要引用对象的属性时,可以使用非静态方法。

您可以从任何类型的方法查询数据库。选择取决于您的课程设计方式。例如,如果您设计类以使每个对象可以具有不同的数据库连接属性,则需要使用非静态方法来查询数据库,以便它将使用该对象的连接。但是,如果连接是类的静态属性,则可以在静态方法中执行。