繁体   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