349 of 410 menu

Phương thức ma thuật __set

Phương thức ma thuật __set tự động được gọi khi cố gắng gán giá trị cho một thuộc tính không tồn tại hoặc không thể truy cập trong ngữ cảnh hiện tại. Phương thức nhận hai tham số: tên thuộc tính và giá trị đang cố gắng gán.

Cú pháp

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

Ví dụ

Tạo một lớp sử dụng __set để chặn các nỗ lực thiết lập thuộc tính không tồn tại:

<?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()); ?>

Kết quả thực thi mã:

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

Ví dụ

Sử dụng __set để xác thực dữ liệu trước khi thiết lập chúng:

<?php class Product { private $price; public function __set($name, $value) { if ($name === 'price') { if (!is_numeric($value) || $value < 0) { throw new Exception('Giá trị giá không hợp lệ'); } $this->price = $value; } } public function getPrice() { return $this->price; } } $product = new Product(); $product->price = 100; echo $product->getPrice(); ?>

Kết quả thực thi mã:

100

Xem thêm

  • phương thức ma thuật __get,
    chặn các nỗ lực đọc thuộc tính không thể truy cập
  • phương thức ma thuật __isset,
    chặn việc kiểm tra sự tồn tại của thuộc tính
Tiếng Việt
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbek
Chúng tôi sử dụng cookie để vận hành trang web, phân tích và cá nhân hóa. Việc xử lý dữ liệu được thực hiện tuân theo Chính sách bảo mật.
chấp nhận tất cả tùy chỉnh từ chối