我目前正在使用PHP并且正在阅读PHP手册,但仍然有$ this的问题。
$ this是全局的还是只是构建对象的另一个变量名?
以下是一个例子:
public function using_a_function($variable1, $variable2, $variable3)
{
$params = array(
'associative1' => $variable1,
'associative2' => $variable2,
'associative3' => $variable3
);
$params['associative4'] = $this->get_function1($params);
return $this->get_function2($params);
}
这对于返回函数有多好?我想我对这个函数的构建方式很困惑。我理解使用一个名为key names => value
的名称来构建关联数组部分,但是$ this会在此示例中抛弃我。
答案 0 :(得分:3)
UPDATE app a JOIN
(SELECT d.DuplicateID, MAX(d.MasterId) as MasterId
FROM Duplicates d
GROUP BY d.DuplicateID
) d
ON a.PlayerID = d.DuplicateID
SET a.PlayerID = d.MasterID;
仅用于面向对象编程(OOP)并引用当前对象。
$this
在对象内部使用它来访问成员变量和方法。
class SomeObject{
public function returnThis(){
return $this;
}
}
$object = new SomeObject();
var_dump($object === $object->returnThis()); // true
答案 1 :(得分:2)
它被称为Object范围,让我们使用一个示例类。
Class Example
{
private $property;
public function A($foo)
{
$this->property = $foo;
// we are telling the method to look at the object scope not the method scope
}
public function B()
{
return self::property; // self:: is the same as $this
}
}
我们现在可以实例化我们的对象,并以另一种方式使用它:
$e = new Example;
$e::A('some text');
// would do the same as
$e->A('some other text');
这只是访问Object范围的一种方法,因为方法无法访问其他方法范围。
您还可以扩展一个类并使用parent ::来调用类扩展范围,例如:
Class Db extends PDO
{
public function __construct()
{
parent::__construct(....
哪个会访问PDO构造方法而不是自己的构造方法。
在您的情况下,该方法调用对象中的其他方法。哪个可以用$ this->来调用或者自我::