Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Menetapkan Nilai Secara Dinamik kepada Sifat Kelas dalam PHP?

Bagaimanakah Saya Boleh Menetapkan Nilai Secara Dinamik kepada Sifat Kelas dalam PHP?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-01 07:30:15654semak imbas

How Can I Dynamically Assign Values to Class Properties in PHP?

Penugasan Nilai Harta Kelas Dinamik dalam PHP

Mentakrifkan sifat kelas dengan nilai tetap ialah pendekatan standard dalam PHP. Walau bagaimanapun, dalam senario tertentu, anda mungkin perlu menetapkan nilai secara dinamik.

Contoh:

Pertimbangkan kod berikut:

class user {
    public $firstname = "jing";
    public $lastname  = "ping";
    public $balance   = 10;
    public $newCredit = 5;
    public $fullname  = $this->firstname.' '.$this->lastname;
    public $totalBal  = $this->balance+$this->newCredit;
}

Ini kod cuba untuk menetapkan nama penuh dan sifat totalBal secara dinamik berdasarkan nilai sifat lain. Walau bagaimanapun, ia mengakibatkan ralat penghuraian disebabkan penggunaan $this dalam sifat peringkat kelas.

Penyelesaian:

Untuk menetapkan nilai sifat kelas secara dinamik, letakkan kod tugasan dalam pembina kelas. Contohnya:

class user {
    private $firstname;
    private $lastname;
    private $balance;
    private $newCredit;
    private $fullname;
    private $totalBal;
    
    public function __construct() {
        $this->firstname = "jing";
        $this->lastname  = "ping";
        $this->balance   = 10;
        $this->newCredit = 5;
        $this->fullname  = $this->firstname.' '.$this->lastname;
        $this->totalBal  = $this->balance+$this->newCredit;
    }
}

Penjelasan:

Sifat kelas tidak boleh diberikan nilai dinamik semasa pengisytiharan. Menurut manual PHP, permulaan mestilah nilai malar yang dinilai pada masa penyusunan. Dengan menggunakan pembina, nilai boleh diberikan secara dinamik semasa penciptaan objek.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menetapkan Nilai Secara Dinamik kepada Sifat Kelas dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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