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

时间:2013-07-04 07:45:02

标签: php class scope instance-variables declare

我只想在同一个文件中的第二个类中声明一个实例变量。 以下示例代码对我来说似乎没问题,但服务器在注释行中导致错误:

例如:

<?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() );

?>

非常感谢大家的帮助!

2 个答案:

答案 0 :(得分:1)

你可以在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() );

?>

答案 1 :(得分:1)

您不能设置属性,因为它属于对象而不是类。您可以通过在构造函数

中创建定位器来修复它
class Doc {
    private $loc;

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