[英]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.