0

グローバル変数は、以前に定義されたクラス(オブジェクト)です。

class Users
{
    private $sql;

    public function __construct() {
        global $sql;
        $this->$sql = $sql;
    }
}

オブジェクトを他のクラス(Users)のプライベート変数に割り当てようとしているので、global $sql;のすべての関数でこの行を使用する必要はありませんがUsers、次のエラーが発生します。

Catchable fatal error: Object of class Bdcon could not be converted to string in /home/<<NAME>>/public_html/<<NAME>>/classes/class.users.php on line 8

4

3 に答える 3

1

private $sql正しい方法でにアクセスしていません。そのはず:

$this->sql = $sql;

エラーが発生する理由は、を使用する$this->$sqlと、$sqlが文字列にキャストされ、phpが値の名前を持つプロパティを検索しようとするためです$sql

于 2013-03-04T10:53:54.080 に答える
1

(通常)オブジェクトをプロパティ名として使用することはできません。

$this->$sql
       ^

しかし、あなたは本当に望んでいません:

$this->sql

いずれにせよ、私はこの他のスタイルをお勧めします:

class Users
{
    private $sql;

    public function __construct(Bdcon $sql) {
        $this->sql = $sql;
    }
}
于 2013-03-04T10:53:04.440 に答える
0

クラスのプロパティにアクセスしているため、代わり$this->sql.に$記号を追加する必要がないために使用します。$this->

于 2013-03-04T10:52:48.943 に答える