Saya baru mengenal PHP dan saya mencoba mengikuti kursus.

<?php 
    class myCar {
        function myCar() {
            $this->model = "Sports";
        }
    }

    $Range_Rover = new myCar();

    echo $Range_Rover->model;
?>

Menurut tutorial saya harus mendapatkan output "Olahraga" Apa yang menyebabkan kode menghasilkan kesalahan properti yang tidak ditentukan?

Peringatan: Properti tidak terdefinisi: myCar::$model di C:\xampp\htdocs\Test\index.php pada baris 16

Tangkapan layar hasil tutorial

Terima kasih banyak, Stuart

1
Stuart 15 Januari 2021, 15:22

3 jawaban

Jawaban Terbaik

Cara yang benar untuk melakukannya:

<?php 
    class myCar {
        public $model;
        function __construct() {
            $this->model = "Sports";
        }
    }

    $Range_Rover = new myCar();

    echo $Range_Rover->model;

Keluaran: https://3v4l.org/bnNrm

Catatan: Mengapa di atas diperlukan

A) Mendefinisikan nama konstruktor sebagai nama kelas adalah praktik yang lebih lama, dan itu akan memberi Anda pesan penghentian untuk beberapa versi php (versi php 7).

B) Juga dari php8 itu akan diperlakukan seperti fungsi normal, bukan sebagai konstruktor, jadi tujuan Anda tidak akan terpecahkan.

2
Anant Kumar Singh 15 Januari 2021, 13:15

Kesalahan itu sendiri sudah jelas. Anda belum mendefinisikan $model di Kelas Anda myCar.

Perbaiki: Tentukan $model di kelas myCar Anda.

Setelah itu kesalahan hilang, tetapi $model tidak akan memiliki nilai apa pun karena metode Anda myCar() tidak dipanggil.

Dalam versi PHP sebelum versi 8, Anda harus mendefinisikan properti kelas Anda. Dengan PHP 8, ini tidak diperlukan lagi karena Konstruktor promosi properti.

Jadi ubah saja function myCar() menjadi function __construct(public $model = "Sports") {}.

0
maio290 15 Januari 2021, 12:49

Anda perlu mendeklarasikan variabel kelas sebelum menggunakannya. Cukup tambahkan "publik $model;" sebelum fungsi mycar().

0
Gursharan Singh 15 Januari 2021, 12:31