$Clint_ip=$this->request->clintIp();
我可以得到关于这一行的清晰概念吗?在这里我知道$ clint_ip是一个变量,但接下来的三个是什么?哪一个是对象? 哪一种方法? 哪一个是班级?
我只需要理解这一行。在几个项目中我看过这种类型的行。在这一行中哪一个叫做对象?如果你想要你可以给另一个例子。在这里$ this是一个对象?还是类?或方法?
答案 0 :(得分:2)
是$Clint_ip
是一个变量,
$this
是包含它的类的this
。 (有关此When to use self over $this?)request
看起来像是另一个类的对象clintIp()
是public
对象类的request
方法答案 1 :(得分:1)
您提供的代码似乎来自班级内部。
一个类表示如下:
class Example {
private $foo;
public $bar;
public function __construct() {
}
public function method() {
}
private function other() {
}
}
创建此类的对象时,可以使用以下格式:
$example = new Example();
这会调用构造函数__construct()
。
创建(“实例化”)此对象后,您可以使用 - >调用对象的属性。
所以,我可以说
$example->bar = "Foo";
将此属性设置为字符串。
在您的代码中,属性“request”本身就是一个对象(类的实例)。
$Clint_ip=$this->request->clintIp();
以下是可以使用的代码示例
class Example {
public $request;
public function __construct($request) {
$this->request = $request;
}
}
class Request {
public function clintIp() {
//return something
}
}
然后是一些背景:
$request = new Request;
$example = new Example($request);
$clint_ip = $example->request->clintIp();
所以在这里,$clint_ip
是变量。 $example
和$request
是对象(类的实例),clintIp()
是请求对象的方法。
现在,关于“$ this”。这表明它在对象“Example”中:
想象一下,类Example现在有一个方法
public function test() {
return $this->request->clintIp();
}
$this
表示它位于对象的实例内部。在static
上下文中,使用“self ::”,如其他答案中所述。
答案 2 :(得分:0)
您是具有请求属性的对象内部。 Request属性包含带有方法clintIp()的对象,它返回客户端ip。