PHP sıkı standartlar: Boş değeri varsayılan nesne oluşturma - Nasıl saptamak için?

4 Cevap

Tümü,

Ben şu PHP5 kodu var.

$request = NULL;
$request->{"header"}->{"sessionid"}        =  $_SESSION['testSession'];
$request->{"header"}->{"type"}             =  "request";

Bu hat 2 ve 3 aşağıdaki hatayı üretiyoruz görünür:

PHP Strict standards:  Creating default object from empty value

Ben nasıl bu hata düzeltebilirim?

Teşekkürler

4 Cevap

Boş bir nesne değil, yani buna değer atanamıyor. Bir associative array ihtiyaç gibi yapıyorsun ne görünüyor. Eğer nesneleri kullanarak ölü seti iseniz, kullanabilirsiniz stdClass

//using arrays
$request = array();
$request["header"]["sessionid"]        =  $_SESSION['testSession'];
$request["header"]["type"]             =  "request";

//using stdClass
$request = new stdClass();
$request->header = new stdClass();
$request->header->sessionid        =  $_SESSION['testSession'];
$request->header->type             =  "request";

(Muhtemelen) aynı temel uygulama ile bir kıvrımlara sözdizimi olarak ben, dizileri kullanarak öneriyoruz.

$ Istek kurtulmak = null ile değiştirin:

$request = new stdClass;
$request->header = new stdClass;

Bunun yerine gerçek bir nesne NULL'A yazmaya çalışıyoruz.

Hatayı bastırmak için:

error_reporting(0);

Hatayı düzeltmek için:

$request = new stdClass();

hth

Null bir değer özelliklerini ayarlamak denemiyorsunuz? Yerine bir ilişkisel dizi kullanın.