簡體   English   中英

這些PHP變量之間有什么區別?

[英]What's the difference between these PHP variables?

我有以下課程:

class MySQLDatabase
{
    private $connection;
    public $last_query;
    private $magic_quotes_active;
    private $real_escape_string_exits;

public function __construct()...

// 1. OPENS connection and selects a DB
public function open_connection()...

// 2. PERFORMS a DB query
public function query($sql)
{
    $this->last_query = $sql;
    $result = mysql_query($sql, $this->connection);
    $this->confirm_query($result);
    return $result;
}

....

注意:我包含了一些與我的問題無關的行只是為了提供一些上下文,它們表示為...

專注於public function query($sql) ,我對所看到的內容感到困惑。

  1. 方法中的$sql變量沒有在此處定義,我相信它是一個參數變量,因為在我的IDE中它的顏色與其他變量略有不同。 這意味着什么,為什么它不同?
  2. $this->last_query也是一個變量,但需要在類中定義,如類本身頂部所示。 為什么需要這樣定義,而$sql變量沒有?
  3. 最后, $result似乎是一個標准變量,而不是“參數變量” - 我希望我使用正確的語言。 為什么這個也沒有定義? 為什么在這堂課中這樣使用?

我真的希望了解這些人之間的差異,以便我能更好地使用它們。

在此先感謝您的幫助!

$sql是一個參數變量。 每當你想執行該函數中的代碼時,你必須通過將它作為參數傳遞來指定$sql應該是什么。

$result會在為其分配內容時定義。 在PHP中,您不需要聲明變量來使用它們,但您需要聲明類字段。

我建議你在繼續之前閱讀一些PHP教程。

$sqlquery函數的參數。 默認情況下,它不需要聲明在整個類塊中工作。 不要忘記您無法訪問將其指向項目中的類屬性。

但是, $last_query被定義為您的類的屬性。 您可以在班級的任何地方訪問它,因此您必須指向它,如$this->last_query ;

http://www.killerphp.com/tutorials/object-oriented-php/是一個很好的PHP簡單OOP教程。 看看吧......

private $connection;
public $last_query;
private $magic_quotes_active;
private $real_escape_string_exits;

上面的變量是你的類的成員變量。 它們可以在您班級的任何功能中使用,可以使用$this->訪問它們。

$sqlquery函數的參數,意味着它的作用域僅在此函數內,不能從任何其他函數中訪問。 這同樣適用於局部變量$result 它也只在query功能中可用。

看。 與javascript一樣,PHP是一種松散類型的語言。 變量的類型可以動態更改。 所以我們不需要顯式聲明變量的類型(int / String / char / byte)。

$ sql作為參數傳遞。 PHP並不關心它的類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM