类中未定义的变量PATHFINDER

时间:2017-01-19 17:10:03

标签: php

我遇到以下问题: 当我直接从类中返回变量“$ haebuCMS_PATHFINDER”时,它可以工作。但是当我生成类的对象并想要从该对象中获取它时,它不起作用。

你能帮帮我吗?

守则:

第1部分:班级 - >回声在这里工作

class Pathfinder {

  public $haebuCMS_PATHFINDER;

  function __construct() {

        $motherpath = "C:/xampp/htdocs/haebuCMS";

        $haebucms_pathfinder = "/Pathfinder.php";

        $haebuCMS_PATHFINDER = $motherpath . $haebucms_pathfinder;


        echo("<br>" . $haebuCMS_INDEX . "<br>" . $haebuCMS_PATHFINDER);
  }
}

第2部分:对象 - &gt;回声不起作用

include"./Pathfinder.php";
$getPath = new Pathfinder();

function getPathfinder() {
    $getPath = new Pathfinder();
    $path = $getPath->$haebuCMS_PATHFINDER;
    echo("<br><br>Pfad : " . $path . "<br><br>");
    include($path);
    return new Pathfinder();
}

感谢您的帮助,并接受我糟糕的英语;)!

habux

1 个答案:

答案 0 :(得分:1)

您需要在构造函数中使用$this->haebuCMS_PATHFINDER。否则你没有分配给class属性,你只是在该方法中分配一个局部变量。

class Pathfinder {

    public $haebuCMS_PATHFINDER;

    function __construct() {
        // Asssign to the public property using $this->
        $this->haebuCMS_PATHFINDER = "C:/xampp/htdocs/haebuCMS/Pathfinder.php";

    }
}

此外,如果您稍后在课外引用该属性,请不要在其前面使用美元符号。

$getPath = new Pathfinder;
// Refer to the public property without using $ before the property name
$path = $getPath->haebuCMS_PATHFINDER;
echo("<br><br>Pfad : " . $path . "<br><br>");

当您使用$getPath->$haebuCMS_PATHFINDER;时,它期望变量$haebuCMS_PATHFINDER(不存在)用于动态引用属性。