349 of 410 menu

Metode Ajaib __set

Metode ajaib __set secara otomatis dipanggil ketika ada upaya untuk menetapkan nilai ke properti yang tidak ada atau tidak dapat diakses dalam konteks saat ini. Metode ini menerima dua parameter: nama properti dan nilai yang coba ditetapkan.

Sintaks

public function __set(string $name, mixed $value): void

Contoh

Mari buat kelas yang akan menggunakan __set untuk mengintercept upaya penetapan properti yang tidak ada:

<?php class User { private $data = []; public function __set($name, $value) { $this->data[$name] = $value; } public function getData() { return $this->data; } } $user = new User(); $user->email = 'test@example.com'; $user->age = 25; print_r($user->getData()); ?>

Hasil eksekusi kode:

Array ( [email] => test@example.com [age] => 25 )

Contoh

Penggunaan __set untuk validasi data sebelum menetapkannya:

<?php class Product { private $price; public function __set($name, $value) { if ($name === 'price') { if (!is_numeric($value) || $value < 0) { throw new Exception('Nilai harga tidak valid'); } $this->price = $value; } } public function getPrice() { return $this->price; } } $product = new Product(); $product->price = 100; echo $product->getPrice(); ?>

Hasil eksekusi kode:

100

Lihat juga

  • metode ajaib __get,
    yang mengintercept upaya pembacaan properti yang tidak dapat diakses
  • metode ajaib __isset,
    yang mengintercept pemeriksaan keberadaan properti
Indonesia
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Kami menggunakan cookie untuk operasi situs, analitik, dan personalisasi. Pemrosesan data dilakukan sesuai dengan Kebijakan Privasi.
terima semua atur tolak