如果有人向我解释在PHP中使用双箭头符号,我将不胜感激。我建议是一个双类和实例化的类,但我不确定。一些例子会很好。感谢。
这样的事情:
$obj->prop->methd();
答案 0 :(得分:12)
这只表明$obj
的属性是某种类而不是原子变量。内部类有一个方法method()
,它从第二个箭头操作符调用。您还可以通过第二个箭头访问内部类的属性。
// Access the inner property
echo $obj->prop->inner_property
// 1234
// Call the inner method
$obj->prop->method();
// I'm the method!
类定义可能类似于:
class obj
{
// Will hold an instance of class Something
public $prop;
public function __construct() {
$this->prop = new Something();
}
}
class Something
{
public $inner_property = 1234;
public function method() {
echo "I'm the method!";
}
}
答案 1 :(得分:5)
举个例子,举两个类:
<?php
class a {
function test() {
echo "test";
}
}
class b {
var $prop = null;
function __construct() {
$this->prop = new a();
}
}
$obj = new b();
var_dump($obj);
$obj->prop->test();
?>
类a
在$prop
实例化并调用构造函数时为b
提供方法。 $prop
中的b
是类b
的对象。
答案 2 :(得分:2)
只要您的方法返回一个对象,您也可以调用该对象的方法,依此类推。
所以这是一个如何链接类方法的例子。
<?php
class MyTest {
public function Hello() {
echo "Hello ";
return $this;
}
public function World() {
echo "World!";
}
}
$h = new MyTest();
$h->Hello()->World();
?>
答案 3 :(得分:1)
prop
是$obj
的属性,它也是一个对象。因此,要访问prop
的方法,必须再次使用箭头操作符。
答案 4 :(得分:1)
$ obj-&gt; prop是变量定义,如
class class1{
public $prop = new class2;
}
class2{
function methd(){
echo "methd function called";
}
}
$obj->prop->methd();