Penyelesaian kepada Notis PHP: Undefined property: stdClass::$

WBOY
Lepaskan: 2023-06-22 22:28:02
asal
3111 orang telah melayarinya

Apabila menulis kod dalam PHP, kita sering melihat mesej ralat ini: "Notis PHP: Undefined property: stdClass::$". Mesej ralat ini biasanya disebabkan apabila sifat objek tidak wujud semasa menggunakannya. Dalam artikel ini, kita akan membincangkan cara menyelesaikan masalah ini.

Pertama sekali, kita perlu memahami sebab mesej ralat ini. Apabila kita menggunakan sifat sesuatu objek, PHP mula-mula menyemak sama ada harta itu wujud. Jika harta itu tidak wujud, mesej ralat "Notis PHP: Harta tidak ditentukan: stdClass::$" akan dilemparkan. Ini biasanya berlaku apabila:

  1. Objek tidak wujud

Ralat ini berlaku jika kita cuba mengakses sifat objek yang tidak wujud. Contohnya:

$student = new stdClass();
echo $student->name; // undefined property error
Salin selepas log masuk

kerana atribut $student tidak ditakrifkan semasa mencipta objek $name. Untuk menyelesaikan masalah ini, kita perlu mentakrifkan atribut ini dahulu:

$student = new stdClass();
$student->name = 'John';
echo $student->name; // John
Salin selepas log masuk
Salin selepas log masuk
  1. Salah ejaan nama atribut objek

Satu lagi masalah biasa ialah salah ejaan. Walaupun kita mentakrifkan sifat semasa mencipta objek, jika kita membuat kesilapan ejaan semasa menggunakan sifat, kita akan melihat mesej ralat ini. Contohnya:

$student = new stdClass();
$student->name = 'John';
echo $student->Name; // undefined property error
Salin selepas log masuk

kerana Name dan name ialah nama atribut yang berbeza. Untuk menyelesaikan masalah ini, kita perlu memastikan bahawa kita menggunakan nama sifat yang betul semasa mengakses harta:

$student = new stdClass();
$student->name = 'John';
echo $student->name; // John
Salin selepas log masuk
Salin selepas log masuk

3. Sifat objek adalah peribadi

Jika sifat objek adalah peribadi, ia tidak boleh boleh diakses dari luar mereka. Contohnya:

class Student {
  private $name = 'John';
}

$student = new Student();
echo $student->name; // undefined property error
Salin selepas log masuk

Di sini kami cuba mengakses harta $name tetapi ia adalah peribadi jadi ia tidak boleh diakses dari luar. Untuk menyelesaikan masalah ini, kita boleh mentakrifkan kaedah awam dalam kelas untuk mengakses harta persendirian:

class Student {
  private $name = 'John';

  public function getName() {
    return $this->name;
  }
}

$student = new Student();
echo $student->getName(); // John
Salin selepas log masuk

Di sini kita mentakrifkan kaedah getName() untuk mengembalikan nilai harta persendirian $name, supaya ia boleh diakses di luar objek mengaksesnya.

Dalam pengekodan harian, kita perlu mengelakkan kesilapan seperti ini dengan memastikan atribut wujud dan dieja dengan betul semasa mentakrifkan kelas dan objek kita Pada masa yang sama, kita perlu berhati-hati apabila mengisytiharkan kebenaran pada atribut. Tetapi walaupun kami mengikuti semua amalan terbaik, kami kadangkala dapat melihat mesej ralat ini. Apabila kami melihat mesej ralat ini, kami harus menyemak semula kod kami untuk mengesahkan bahawa kami telah menentukan sifat dengan betul dan menggunakan nama sifat yang betul.

Atas ialah kandungan terperinci Penyelesaian kepada Notis PHP: Undefined property: stdClass::$. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan