listelenmemiş saklıdır kelime?

2 Cevap php

Ben bizim PHP kodu bugün bazı çok garip bir davranış içine koştu. Biz dosyaları ile başa çıkmak için bir sınıf var. Böyle bir şey var:

class AFile {

 //usual constructor, set and get functions, etc.
 //...

  public function save() {
    //do some validation
    //...

    if($this->upload()) { //save the file to disk
      $this->update_db(); //never reached this line
    }
  }

  private function upload() {
     //save the file to disk
     //...
     return ($success) ? true : false;
  }
}

Bu bizim için oldukça normal görünüyordu, ama $ this-> yükleyin () fonksiyonu NULL şey ama asla geri dönmedi. Biz doğru fonksiyon çalışan olduğunu kontrol etti. Iade önce biz onun dönüş değerini yankılandı. Biz sadece gerçek bir değer ya da bir dize döndüren çalıştı. Her hakkı kontrol ediyordu. Ama $ this-> yükleme hala NULL değerlendirildi. Ayrıca, orada günlüklerinde bir şey oldu ve ERROR_ALL üzerinde.

Küskünlükle biz foo_upload için işlev adını değiştirdi. Birdenbire her şeyi tüm çalıştı. "Upload" PHP reserved words listesinde değildir. "Upload" adında bir sınıf işlevi başarısız neden kimse herhangi bir düşünce var mı?

2 Cevap

Yükleme yöntemi sonunda return ifadesi bu yöntemi tek return ifadesi olduğundan emin olun.

Null ile almak için tek yolu zaman bu olsaydı yükleme (bir inexisting özelliğine erişmek için çalışıyor) olurdu "çağrı":

if($a = $this->upload) { // => NULL
  $this->update_db(); //never reached this line
}
var_dump($a);

bunun yerine (OP) (varolan yöntemini çağırmak çalışıyorum):

if($a = $this->upload()) { // => true or false
  $this->update_db(); //never reached this line
}
var_dump($a);

Eğer ihmal etmedi kontrol ettin ()?

Bu değilse, E_ALL ayarlanmış error_reporting ile deneyin ve hataları gösterir:

ini_set('display_errors', true);
error_reporting(E_ALL);

* (Eğer "ERROR_ALL üzerinde" çok emin değilim sen demek ne dedi)