使用PHP 5.2.17在另一个类中声明实例变量


Declaring an instance variable in another class using PHP 5.2.17

我只想在同一文件的第二个类中声明一个实例变量。下面的示例代码对我来说似乎还可以,但服务器在评论行处导致了一个错误:

例如:

<?php
class Locator {
    private $location = __FILE__;
    public function getLocation() {
        return $this->location;
    }
}
class Doc {
    private $loc = new Locator(); // [SYNTAX-ERROR] unexpected T_NEW
    public function locator() {
        return $this->loc;
    }
}
$doc = new Doc();
var_dump( $doc->locator() );
?>

非常感谢大家的帮助!

您可以在Doc::locator()中新建定位器类;

class Locator {
    private $location = __FILE__;
    public function getLocation() {
        return $this->location;
    }
}
class Doc {
    public function locator() {
        return new Locator();  // new locator here
    }
}
$doc = new Doc();
var_dump( $doc->locator() );
?>

不能设置属性,因为它属于对象而不是类。您可以通过在构造函数中创建定位器来修复它

class Doc {
    private $loc;
    public function __construct() {
        $this->loc = new Locator()
    }
    public function locator() {
        return $this->loc;
    }
}