PHP在其他类

时间:2015-04-25 23:57:13

标签: php mysql class variables

我基本上知道php,但我对所有类的东西都是新手。现在 - 喜欢它。 这是我的问题:

我正在编写课程来完成帐户管理的所有工作。 (例如,创建新帐户,获取帐户详细信息,检查帐户是否存在....) 在该类中,我需要做一些MySQL请求。因此,我使用了medoo-class(http://www.medoo.in)。

class acc{

// Attributes
public static $account;
public $pw;
protected $error;

public function acc_exist() {
    $database = new medoo();

    $acc_count = $database->count("table_accounts", ["column_account" => acc::$account]);

    if ($acc_count == 0)  {return true;} else {$this->error .= "Account exists already!";};
}};

请注意以下内容:

$database = new medoo();

    $acc_count = $database->count("table_accounts", ["column_account" => acc::$account]);

这里我带来了medoo。并且[" column_account" => acc :: $ account] acctually工作。正如我在其他一些帖子中看到的那样,我将$ accounts 公共静态

现在我这样称呼我的班级:

$my_acc = new acc();
$my_acc->account = 'Luci';
$my_acc->acc_exist();

我需要这样工作。在我的其余代码的上下文中,执行一些acc($ account)很困难。

但正如我所料,我得到一个错误:

  

严格标准:将静态属性acc :: $ account作为非静态访问

清楚我的静态保存了var的值。所以我需要一些其他的方式。有人有想法吗?

最好,Lox

3 个答案:

答案 0 :(得分:1)

我认为您不需要将$account视为静态,这对于您可能会使用此代码的方式没有意义,请尝试使用{{ 1}}然后使用public $account;

所以:

["column_account" => $this->account]

以下是有关如何正确使用class acc{ // Attributes public $account; public $pw; protected $error; public function acc_exist() { $database = new medoo(); $acc_count = $database->count("table_accounts", ["column_account" => $this->account]); if ($acc_count == 0) {return true;} else {$this->error .= "Account exists already!";}; }}; 的更多信息:Static Keyword in PHP

答案 1 :(得分:0)

您正在调用一个不存在的变量。

您将$ accout声明为public和static。

但您尝试拨打$ account。

替换:

$my_acc->account = 'Luci';

使用:

$my_acc->accout = 'Luci';

答案 2 :(得分:0)

Vex是对的。取消PaintEventArgs关键字并改为使用static

贝斯茨,