Hướng dẫn does php have getters and setters? - php có getters và setters không?


Trong bài viết này, chúng tôi tìm hiểu cách tốt nhất để tạo ra các chiến lược getter và setter trong PHP. Các chiến lược Getter và Setter được sử dụng khi chúng ta cần hạn chế truy cập trực tiếp vào các biến của người dùng cuối. Getters và setters là các phương thức được sử dụng để xác định hoặc truy xuất các giá trị của các biến, thông thường là các phương thức riêng tư.

Đúng như tên cho thấy, phương pháp Getter là một kỹ thuật nhận hoặc khôi phục giá trị của một đối tượng. Ngoài ra, một phương thức setter là một kỹ thuật đặt giá trị của một đối tượng.

Thí dụ

Hãy hiểu việc sử dụng các phương thức Getter và Setter thông qua một ví dụ.

name = $name;
      }
      public function getName(){
         return $this->name;
      }
   }
   $person = new Person();
   echo $person->name;
?>

Output:

PHP Error Cannot access private property Person::$name

Explanation:

Trong lớp người của chúng tôi ở trên, chúng tôi có một tài sản riêng gọi là $ name. Bởi vì đó là tài sản riêng, chúng tôi không thể truy cập chúng trực tiếp như trên và sẽ tạo ra một lỗi nghiêm trọng.

Thí dụ

Hãy hiểu việc sử dụng các phương thức Getter và Setter thông qua một ví dụ.

name = $name;
      }
      public function getName(){
         return 'welocme'. $this->name;
      }
   }
   $person = new Person();
   $person->setName('Alex');
   $name = $person->getName();
   echo $name;
?>

Output:

welcomeAlex

Explanation:

Trong lớp người của chúng tôi ở trên, chúng tôi có một tài sản riêng gọi là $ name. Bởi vì đó là tài sản riêng, chúng tôi không thể truy cập chúng trực tiếp như trên và sẽ tạo ra một lỗi nghiêm trọng.

Để chạy mã ở trên và lấy đầu ra mong muốn của chúng tôi, hãy kiểm tra ví dụ này.

Hướng dẫn does php have getters and setters? - php có getters và setters không?

Ở đây để cung cấp quyền truy cập vào các thuộc tính riêng của chúng tôi, chúng tôi đã tạo ra một chức năng "getter" có tên là GetData, một lần nữa vì khả năng hiển thị của các thuộc tính được đặt thành riêng tư, bạn cũng sẽ không thể thay đổi hoặc sửa đổi giá trị của chúng. Vì vậy, bạn nên sử dụng một trong các hàm "setter" mà chúng tôi đã thực hiện: setName. Sau đó, chúng tôi đã khởi tạo đối tượng con người của chúng tôi.

  • Chúng tôi "đặt" thuộc tính $ name thành "Alex" sử dụng kỹ thuật Setter SetData của chúng tôi. Sau đó, chúng tôi lấy lại giá trị của thuộc tính $ name bằng cách sử dụng hàm getdata của chúng tôi.
  • Cập nhật vào ngày 31 tháng 12 năm 2019 08:57:06
  • Câu hỏi và câu trả lời liên quan
  • Phương pháp getters/setters cho lớp Python là gì?
  • Getters và Setters ở Kotlin
  • Getters và setters trong các lớp JavaScript?
  • Sự khác biệt giữa getters và setters trong javascript là gì?
  • Các phương pháp để vệ sinh đầu vào của người dùng với PHP là gì?
  • Các thuộc tính và phương pháp tĩnh PHP
  • Phương pháp phân cấp là gì?
  • Phương pháp trong Java là gì?
  • Phương pháp bản địa trong Java là gì và chúng được sử dụng ở đâu?
  • Các phương pháp định giá và các loại của nó là gì?
  • Phương thức lưu và khôi phục trong Canvas HTML5 là gì?
  • Phương pháp Defender hoặc phương pháp ảo trong Java là gì?
  • Phương thức chuỗi jQuery là gì?

Getters

Getters cung cấp quyền truy cập công khai vào dữ liệu riêng tư. Họ cũng có thể thực hiện một sửa đổi nhỏ của kết quả trả lại. give public access to private data. They may also make a small modification of the returned result.

Hãy xem ví dụ sau:

Output:

Explanation:

  • Nếu chúng ta giải quyết line 14, mã sẽ không biên dịch. Đó là bởi vì một thành viên tư nhân (được tuyên bố là line 5) không thể được truy cập trực tiếp bên ngoài cơ thể lớp.
  • Tại line 15, một thành viên tư nhân được truy cập bên ngoài cơ thể lớp. Điều đó không được thực hiện trực tiếp (như trong line 14) nhưng thông qua một chức năng công cộng - một người nhận. Đây là cách một thành viên tư nhân có thể được truy cập bên ngoài cơ thể lớp.

Hãy thêm nhiều thứ hơn:

Output:

Những điều duy nhất được thêm vào là 2 getters - getPerimetergetArea. Đơn giản là họ là những người nhận được một thành viên tư nhân với một sửa đổi nhỏ.

Setters

Setters cho phép một biến riêng được sửa đổi. Chúng rất quan trọng vì chúng có thể cung cấp xác thực trước khi một giá trị được đặt. allow for a private variable to be modified. They are important since they can provide validation before a value is set.

Hãy xem xét ví dụ sau:

Output:

Explanation:

  • Giá trị của thành viên tư nhân
    PHP Error Cannot access private property Person::$name
    0 được sửa đổi tại
    PHP Error Cannot access private property Person::$name
    1 mà không cần xác thực.
  • Tại
    PHP Error Cannot access private property Person::$name
    2 được xác định là một setter có xác thực. Nếu xác thực không thành công, giá trị
    PHP Error Cannot access private property Person::$name
    3 được đặt ở
    PHP Error Cannot access private property Person::$name
    4. Nếu xác thực vượt qua
    PHP Error Cannot access private property Person::$name
    5 thì giá trị truyền được đặt (
    PHP Error Cannot access private property Person::$name
    6).
  • Nếu chúng ta giải trí
    PHP Error Cannot access private property Person::$name
    7, thì tuổi đối tượng của người đó sẽ có giá trị bằng không. Đó là do xác nhận tại
    PHP Error Cannot access private property Person::$name
    8.

Tại sao sử dụng getters và setters?

Bởi vì các thành viên tư nhân có thể có xác thực trước khi sửa đổi (setter) và truy cập được kiểm soát (getter).

Nó có vẻ dễ dàng hơn để chỉ có các thành viên công cộng. Bằng cách này, không có nhu cầu về getters và setters. Đó là một thông lệ tốt hơn để có các thành viên tư nhân được truy cập với Getter và được sửa đổi thông qua Setter. Bằng cách này, một xác nhận có thể được cung cấp trong một setter và quyền truy cập công khai chỉ có thể được thực hiện cho một số thành viên - những người có getters.

Lớp nào chứa getters và setters?

Giới thiệu. Getters và setters đóng một vai trò quan trọng trong việc truy xuất và cập nhật giá trị của một biến bên ngoài lớp đóng gói.encapsulating class.

Có getters và setters trong JavaScript không?

Trình truy cập JavaScript (Getters và Setters) Ecmascript 5 (ES5 2009) đã giới thiệu getter và setters. Getters và setters cho phép bạn xác định các truy cập đối tượng (thuộc tính được tính toán).ECMAScript 5 (ES5 2009) introduced Getter and Setters. Getters and setters allow you to define Object Accessors (Computed Properties).

Tôi có thể sử dụng gì thay vì getters và setters?

Bạn có thể sử dụng Lombok - để tránh thủ công phương thức getter và setter.Nhưng nó tự tạo ra.Việc sử dụng Lombok làm giảm đáng kể số lượng mã.lombok - to manually avoid getter and setter method. But it create by itself. The using of lombok significantly reduces a lot number of code.

Tại sao getters và setters không công khai?

Sự khác biệt chính giữa việc tạo ra một trường công khai so với phơi bày nó thông qua getters/setters đang nắm giữ quyền kiểm soát tài sản.Nếu bạn công khai trường, điều đó có nghĩa là bạn cung cấp quyền truy cập trực tiếp vào người gọi.Sau đó, người gọi có thể làm bất cứ điều gì với lĩnh vực của bạn, một cách cố ý hoặc vô tình.holding control over the property. If you make a field public, it means you provide direct access to the caller. Then, the caller can do anything with your field, either knowingly or unknowingly.

Sự khác biệt giữa getter và setter trong javascript là gì?

Getters và setters cho phép chúng tôi xác định người truy cập đối tượng.Sự khác biệt giữa chúng là cái trước được sử dụng để lấy thuộc tính từ đối tượng trong khi cái sau được sử dụng để đặt một thuộc tính trong một đối tượng.the former is used to get the property from the object whereas the latter is used to set a property in an object.