Phương pháp ma thuật trong php với ví dụ là gì?

Để sử dụng hàm tạo, chúng ta phải truyền một đối số cho lớp với tên của mô hình ngay khi chúng ta tạo đối tượng, nhưng nếu chúng ta cố gắng tạo một đối tượng mới mà không gán giá trị mà hàm tạo cần, chúng ta sẽ

$car1 = new Car[];

Kết quả.
Cảnh báo. Thiếu đối số 1 cho Ô tô. __construct[]

Để tránh lỗi như vậy, chúng ta phải gán một giá trị cho hàm tạo. Vì vậy, để làm ví dụ, chúng ta gán giá trị "Mercedes" cho hàm tạo bằng cách viết giá trị đó trong dấu ngoặc của đối tượng mới tạo.

$car1 = new Car["Mercedes"];

Bây giờ, hãy thêm phương thức getCarModel[] để lặp lại mô hình ô tô từ đối tượng mà chúng ta vừa tạo.

class Car {
  private $model;
  
  //__construct
  public function __construct [$model]
  {
    $this -> model = $model;
  }
   
  public function getCarModel[]
  {
    return ' The car model is: ' . $this -> model;
  }
}
  
//We pass the value of the variable once we create the object
$car1 = new Car["Mercedes"];
  
echo $car1 -> getCarModel[];

Kết quả.
Mô hình ô tô là. Mercedes.

Làm thế nào để viết một phương thức xây dựng mà không gặp lỗi?

Khi chúng ta cố gắng tạo một đối tượng có phương thức khởi tạo, chúng ta có nguy cơ bị hỏng mã nếu chúng ta không chuyển một giá trị cho hàm tạo. Để tránh rủi ro này, chúng ta có thể xác định giá trị mặc định cho các thuộc tính mà chúng ta muốn đặt thông qua hàm tạo. Giá trị mặc định có thể là lựa chọn hợp lý nhất cho thuộc tính, số 0, chuỗi rỗng hoặc thậm chí là giá trị rỗng

Nếu chúng tôi sử dụng null làm giá trị mặc định, chúng tôi có thể sử dụng một điều kiện để đánh giá xem một giá trị có được chuyển hay không và sau đó, chỉ trong trường hợp đó, gán giá trị cho thuộc tính

Trong ví dụ bên dưới, chúng tôi đặt giá trị mặc định là null cho thuộc tính $model và chỉ khi giá trị đó được chuyển cho thuộc tính . Trong mọi trường hợp khác, thuộc tính $model có giá trị mặc định là "N/A" string.

class Car {
  // The $model property has a default value of "N/A"
  private $model = "N/A";
  
  // We don’t have to assign a value to the $model property
  //since it already has a default value
  public function __construct[$model = null]
  {
    // Only if the model value is passed it will be assigned
    if[$model] 
    { 
      $this -> model = $model;
    }
  }
   
  public function getCarModel[]
  {
    return ' The car model is: ' . $this -> model;
  }
}
  
//We create the new Car object without passing a value to the model
$car1 = new Car[];
  
echo $car1 -> getCarModel[];

Mặc dù chúng tôi đã tạo đối tượng mà không chuyển giá trị cho thuộc tính mô hình, nhưng chúng tôi không gây ra lỗi vì thuộc tính mô hình trong hàm tạo có giá trị mặc định là null

Tất cả các tên hàm bắt đầu bằng __ trong các lớp PHP đều rất kỳ diệu và mỗi cái đều có một điều đặc biệt. Những chức năng này là huyền diệu. __construct[], __destroy[], __call[], __callStatic[], __get[], __set[], __isset[], __unset[], __sleep[], __wakeup[], __serialize[], __unserialize[], __toString[

__xây dựng[]

Các lớp có phương thức __construct[], gọi nó mỗi khi đối tượng mới được tạo. Nói cách khác, rất hữu ích khi khởi tạo mà đối tượng có thể cần trước khi đi xa hơn

Chủ Đề