[英]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)
,我對所看到的內容感到困惑。
$sql
變量沒有在此處定義,我相信它是一個參數變量,因為在我的IDE中它的顏色與其他變量略有不同。 這意味着什么,為什么它不同? $this->last_query
也是一個變量,但需要在類中定義,如類本身頂部所示。 為什么需要這樣定義,而$sql
變量沒有? $result
似乎是一個標准變量,而不是“參數變量” - 我希望我使用正確的語言。 為什么這個也沒有定義? 為什么在這堂課中這樣使用? 我真的希望了解這些人之間的差異,以便我能更好地使用它們。
在此先感謝您的幫助!
$sql
是一個參數變量。 每當你想執行該函數中的代碼時,你必須通過將它作為參數傳遞來指定$sql
應該是什么。
$result
會在為其分配內容時定義。 在PHP中,您不需要聲明變量來使用它們,但您需要聲明類字段。
我建議你在繼續之前閱讀一些PHP教程。
$sql
是query
函數的參數。 默認情況下,它不需要聲明在整個類塊中工作。 不要忘記您無法訪問將其指向項目中的類屬性。
但是, $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->
訪問它們。
$sql
是query
函數的參數,意味着它的作用域僅在此函數內,不能從任何其他函數中訪問。 這同樣適用於局部變量$result
。 它也只在query
功能中可用。
看。 與javascript一樣,PHP是一種松散類型的語言。 變量的類型可以動態更改。 所以我們不需要顯式聲明變量的類型(int / String / char / byte)。
$ sql作為參數傳遞。 PHP並不關心它的類型。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.