PHP bir hata atar ...

0 Cevap php

Yerde benim kod var:

class aclass {
  ...
  function amethod() {
    $this->dom = $a_dom_document;
    $this->about = array('an_element' => $an_element_of_that_document);
  }
  ...
}

/* Somewhere else */

$instance->dom; // It's there, no problem.
$instance->about['an_element']->parentNode->replaceChild($something_else, $this->about['an_element']);

Kod karmaşıktır; Ben sadece burada, özünü vermeye çalışıyorum.

Tuhaf şey, zamanın dörtte çalışır. 4 kez dışında 3, PHP replaceChild bir "olmayan bir nesne üzerinde bir üye işlev replaceChild Call ()" olduğunu söylüyor, ama zaman dörtte, aslında çalışır. Ne oluyor olabilir?

Düzenleme: Aşağıdaki

print_r($instance->about['an_element']);
print_r($instance->about['an_element']->parentNode);
print method_exists($instance->about['an_element'], 'replaceChild')?'exists':'does not exist');
print_r($something_else);    

döner:

DOMElement Object
(
)
DOMElement Object
(
)
exists
DOMElement Object
(
)

Sayfa başarısız bile bu doğrudur.

Ben çok belirgin bir şey eksik olmalı. $ Something_else aynı DOM belgenin bir düğümdür.

ÇÖZÜM: Bu gerçekten çok basit: Ben hala oldukça anlamıyorum nedenlerle, bu kod parçası iki kez çağrılır. Bir durumda, örnek tanımlı değil, ancak örnek günlükleri ikinci sırada yer gösterir ve ben gerçekten sadece birini arıyordu. Bir eğer bunu hallettim. Şimdi # @! ~ Ilk etapta iki tanesi vardır neden görmek zorunda.

0 Cevap