Eigenschaften einer Klasse in die andere schaufeln

BAGZZlash

Moderator
Teammitglied
Wie bekomme ich denn in der einen Klasse Zugriff auf die Eigenschaften eines Objekts (Instanz einer anderen Klasse)? Das hier funktioniert nicht:

PHP:
<?php
class Test1
{
    public $MyVar = 5;
}

class Test2
{
    public $AnotherVar;

    public function __construct()
    {
        $this->AnotherVar = $MyObj->MyVar;
    }
}

$MyObj = new Test1();
echo $MyObj->MyVar . '<br>';

$NewObj = new Test2();
echo $NewObj->AnotherVar;
?>
 

BAGZZlash

Moderator
Teammitglied
Okay, hiermit komme ich wohl aus. Ist das der gewollte Weg?

PHP:
<?php
class Test1
{
    public $MyVar = 5;
}

class Test2
{
    public $AnotherVar;

    public function __construct($Banane)
    {
        $this->AnotherVar = $Banane->MyVar;
    }
}

$MyObj = new Test1();
echo $MyObj->MyVar . '<br>';

$NewObj = new Test2($MyObj);
echo $NewObj->AnotherVar;
?>
 

Mat

Aktives Mitglied
Bin schon ein bisschen aus PHP raus aber sieht erstmal OK aus.

Abhängig vom Anwendungsfall, lohnt sich vielleicht eine Konstante oder statische Variable. Vielleicht sogar Vererbung, Interface oder ein Trait.

Die Werte werden dann unterschiedlich angesprochen:

Bananarama:
<?php
class Test1
{
    const MY_CONST = 4;
    public static $MyStatic = 5;
    public $myVar = 6;
}

class Test2
{
    public $anotherVar;

    public function __construct(Test1 $banane)
    {
        $this->anotherVar = $banane->myVar;
    }
}

$myObj = new Test1();
echo $myObj::MY_CONST . '<br>';
echo $myObj::$MyStatic . '<br>';
echo $myObj->myVar . '<br>';

$newObj = new Test2($myObj);
echo $newObj->anotherVar;
 
Oben Unten