在不创建新实例的情况下从另一个类调用变量[PHP]

时间:2015-08-13 11:31:44

标签: php oop

我的类中有一个数组“Parse”在这个数组中我有多个数据,它看起来像(我在这里只显示了一些重要的一行:

class Parse
{
    public static $data = array();  

    public function parseXML()
    {
        .
        .
        .
        $items = $doc->getElementsByTagName( "item" );
        foreach( $items as $item )
        {  
          $keys = $item->getElementsByTagName( "key" );
          $key = $keys->item(0)->nodeValue;

          $values = $item->getElementsByTagName( "value" );
          $value = $values->item(0)->nodeValue;

          //adding login and password to array              
          $data[$key] = $value;

        }       
        $claimNumber = $doc->getElementsByTagName( "ClaimNumber" );
        $claimNumber = $claimNumber->item(0)->nodeValue;

        $vin = $doc->getElementsByTagName( "VIN" );
        $vin = $vin->item(0)->nodeValue;    

        //adding claimnumber and VIN to array
        $data['claimNumber'] = $claimNumber;        
        $data['vin'] = $vin;

        $this->data = $data;
        return $data;
    }

基本上在$ data中我应该有vin,声明数量和来自foreach的更多东西(不要让你混淆让我们忽略来自foreach的数据)

Okey所以现在我想从另一个类和方法访问这些数据,我不想创建它的新实例,因为这将截断以前使用的方法parseXML()中$ data中的所有数据 课休息 {     public $ token = null;

public function authorization()
{
    //define enviroment and path        
    $host = enviroment;
    $path = "/oauth/token"; 
    $username = Parse::$data['claimNumber'];

这是我在另一个stackoverflow问题中找到的内容,但它只返回:Undefined index: claimNumber还尝试添加Parse::$data;基本相同的结果。

有人可以帮我这个吗?

1 个答案:

答案 0 :(得分:1)

$this->data = $data;方法中的parseXML()替换为self::$data = $data;