Bir php sınıf özelliği başka bir sınıf özelliği eşit olabilir?

3 Cevap php

Ben bunu yapmak istiyorum:

class MyClass {
   var $array1 = array(3,4);
   var $array2 = self::$array1;
}

ve $ dizi2 çalışmıyor.

Başka bir sınıf özelliği eşit bir sınıf özelliği yapmak için bir çözüm / hile var mı?

Teşekkürler.

3 Cevap

Ben PHP için yeni değilim, ama Paolo cevap values yapıcısındaki aynı olması için sadece başlatılıyor gibi görünüyor, ama aslında her iki değişken aynı içeriği başvuru yapmaz. Buna ne dersiniz:

class MyClass {
    var $array1 = array(3,4);
    var $array2 = array();

    function MyClass() {
        $this->array2 = &$this->array1;
    }
}

$myclass = new MyClass();
print_r($myclass->array1); // outputs Array ( [0] => 3 [1] => 4 ) 
print_r($myclass->array2); // outputs Array ( [0] => 3 [1] => 4 )
echo "<br />";
$myclass->array1[0] = 1;
$myclass->array2[1] = 2;
print_r($myclass->array1); // outputs Array ( [0] => 1 [1] => 2 ) 
print_r($myclass->array2); // outputs Array ( [0] => 1 [1] => 2 )

Referans eklenmesi ile, both class emlak değerleri değişti ya zaman değiştirebilirsiniz. Ben bir şey eksik?

Hem cevaplar, Paolo ve notruthless, mükemmel, çok teşekkür ederim!

Ben iki özellik senkronize tutmak istiyorsanız:

function MyClass() {
    $this->array2 = &$this->array1;
}

Ben iki dizileri başlangıçta aynı değerlere sahip olmak istiyorum ama sonra bunları tek tek değiştirmek istiyorsanız, ben 've' kaldırın:

function MyClass() {
    $this->array2 = $this->array1;
}