PHP birisi pointer referans vs klonlama açıklayabilir?

0 Cevap php

Öncelikle, ben programlama ve nesneleri anlamak, ancak aşağıdaki PHP bana pek mantıklı değil.

PHP biz ve kullanımı Bir değişkene bir başvuru almak için operatör. Ben farklı bir değişkenle aynı 'şey' ifade etmek için bir yol olarak bir başvuru anlıyorum. Ben örnek derseniz

$b = 1;
$a =& $b;
$a = 3;
echo $b;

$ a yapılan değişiklikler $ b'ye yapılan değişiklikler gibi aynı çünkü çıkışı 3 olacak. Tersine:

$b = 1;
$a = $b;
$a = 3;
echo $b;

gerektiği çıkış 1.

Bu durumda, neden klon anahtar kelime gereklidir? Bana öyle geliyor ki ben ayarlarsanız

$obj_a = $obj_b then changes made to $obj_a should not affect $obj_b, conversely $obj_a =& $obj_b should be pointing to the same object so changes made to $obj_a affect $obj_b.

Ancak referans operatörü ($obj_a = $obj_b) olmadan atanmış olsa bile $ obj_a üzerinde belli işlemler $ obj_b etkileyen DO ki PHP görünüyor. Sonunda temelde yaparak sabit DateTime nesneler ile çalışırken, bu, bugün benim için sinir bozucu bir sorun neden:

$obj_a = clone $obj_b

Ama yazmak php kod çoğu bu durumda olduğu gibi açık klonlama gerektirir ve bu olmadan sadece çalışıyor görünmüyor. Burada neler oluyor? Ve neden bu kadar PHP aksak olmak zorunda?

0 Cevap