Tĩnh và không tĩnh trong php là gì?

Trong hướng dẫn này, chúng ta sẽ tìm hiểu thêm về các phương thức tĩnh trong PHP OOP. Chúng ta sẽ thảo luận về ý nghĩa của các phương thức tĩnh, khi nào sử dụng chúng, cú pháp và sự khác biệt giữa các phương thức tĩnh và không tĩnh

Các phương thức tĩnh trong PHP là gì?

  • Các phương thức tĩnh được tạo bằng từ khóa tĩnh
  • Các phương thức tĩnh của một lớp được gọi trực tiếp. Điều đó có nghĩa là chúng ta không cần tạo thể hiện của lớp để gọi phương thức tĩnh của nó
  • Một lớp có thể chứa cả phương thức tĩnh và không tĩnh
  • Để gọi phương thức tĩnh của một lớp, chúng ta sử dụng toán tử phân giải phạm vi

Cú pháp của phương thức tĩnh trong PHP

Cú pháp gọi phương thức tĩnh

ClassName::staticMethod[];

Thí dụ

  • Trong ví dụ trên, chúng ta tạo một lớp có chứa phương thức tĩnh trong đó
  • Chúng tôi gọi phương thức tĩnh của lớp này bên ngoài bằng cách sử dụng phương thức phân giải phạm vi

Gọi phương thức tĩnh bên trong lớp – PHP

  • Trong PHP, từ khóa self cho phép gọi phương thức tĩnh của chính nó bên trong lớp. Hãy xem ví dụ sau, trong đó chúng ta tạo một lớp với phương thức tĩnh và gọi nó bên trong hàm tạo của lớp
  • bản thân. methodName[] là cú pháp chung để gọi phương thức tĩnh bên trong lớp

Gọi phương thức tĩnh bên trong một lớp khác – PHP

Rất thú vị khi sử dụng trường hợp của các phương thức tĩnh, chúng ta có thể gọi một phương thức tĩnh công khai bên trong một lớp khác. Hãy nhớ rằng, nó phải là một phương thức tĩnh công khai

Gọi một phương thức tĩnh trong lớp con – PHP

Trong trường hợp thừa kế, chúng ta có thể gọi phương thức tĩnh của lớp cha bên trong lớp con bằng cách sử dụng từ khóa cha. Nhìn vào ví dụ dưới đây

  • Trong ví dụ trên, chúng ta tạo một lớp cha với một số phương thức tĩnh
  • Chúng tôi tạo một lớp khác mở rộng lớp cha
  • Gọi phương thức tĩnh của lớp cha bằng từ khóa cha theo sau là tên của phương thức tĩnh

Ghi chú. Như chúng ta đã đề cập trong phần trước, việc gọi một phương thức tĩnh bên trong một lớp khác yêu cầu nó phải công khai. Nhưng trong trường hợp gọi phương thức tĩnh của lớp cha [kế thừa], công cụ sửa đổi truy cập phương thức tĩnh có thể là công khai hoặc được bảo vệ

Theo nhiều cách, PHP hỗ trợ Lập trình hướng đối tượng [đặc biệt là sử dụng self. , tĩnh. và cha mẹ. trong PHP]

Việc xem mã được viết theo thủ tục đang trở nên cổ xưa và giống như việc tìm thấy hóa thạch khủng long ở Nam Cực

Tất cả chúng ta đều có thể đồng ý rằng viết mã theo cách Hướng đối tượng tốt hơn viết theo thủ tục theo nhiều cách

Một trong những nguyên lý cơ bản của Ngôn ngữ hướng đối tượng là khái niệm kế thừa. Một ngôn ngữ lập trình phải hỗ trợ kế thừa để được coi là Hướng đối tượng hoặc có thể.  

Khi viết các lớp trong PHP, sẽ có lúc chúng ta cần truy cập các phương thức được định nghĩa trong một lớp hoặc một lớp cha bên trong chính lớp đó [chứ không phải là một thể hiện của lớp đó].  

Có ba bộ truy cập như vậy có thể dễ bị nhầm lẫn và chúng tự. , tĩnh. và cha mẹ. trong PHP. Bài viết này sẽ mô tả những điều này một cách chi tiết để loại bỏ bất kỳ sự mơ hồ nào có thể tồn tại với các bộ truy cập này

Trước khi bạn đi sâu vào, hãy xem hướng dẫn cơ bản về Laravel 2021 để được cập nhật với Laravel Development

Nếu bạn là nhà phát triển phụ trợ hoặc đang tìm hiểu sâu về con đường sự nghiệp này, hãy tham gia cùng các nhà phát triển khác để nhận các bài viết hàng ngày về phát triển phụ trợ giúp tăng năng suất của bạn

cái tôi. người truy cập

Để hình dung điều này, chúng ta hãy nhìn vào dòng mã này

6 làm gì. Nó được sử dụng để chỉ một số thành viên khác của lớp [thuộc tính hoặc phương thức] trong cùng một lớp. Trong ví dụ của chúng tôi, chúng tôi đề cập đến phương pháp
7 trong phương pháp
6 có thể được sử dụng cho cả thành viên lớp tĩnh và không tĩnh, nhưng nó sẽ gây ra lỗi khi bạn cố truy cập thành viên không tĩnh từ một phương thức tĩnh chứ không phải ngược lại.  

Dưới đây là một số đoạn mã để minh họa điều này có nghĩa là gì

6. Chúng tôi cũng có thể làm điều này bằng cách sử dụng trình truy cập
6

ClassName::staticMethod[];
0

Như đã thấy trong ví dụ trên, sử dụng phương thức tĩnh trong phương thức không tĩnh sẽ chạy mà không gặp vấn đề gì

ClassName::staticMethod[];
1

Sử dụng phương thức không tĩnh trong phương thức tĩnh gây ra lỗi. Các quy tắc tương tự được áp dụng ở đây cũng áp dụng cho

6 gây ra một số hành vi không mong muốn khi chúng ta mở rộng lớp bằng cách sử dụng nó. Đương nhiên, chúng ta sẽ mong đợi các quy tắc kế thừa tiêu chuẩn rằng phương thức
7 sẽ bị ghi đè bởi lớp
6, chúng tôi đề cập đến lớp thuộc tính đã sử dụng từ khóa
6, chứ không phải bất kỳ lớp con nào khác mở rộng nó

Bất kỳ phương thức nào chúng ta truy cập bằng từ khóa

6 sẽ không bị các lớp con ghi đè. Đây có thể không phải là hành vi chúng tôi mong đợi

Hãy nghỉ ngơi và xem hướng dẫn cơ bản về Laravel 2021 để cập nhật thông tin về Laravel Development

Trong PHP v5. 3, một tính năng mới gọi là liên kết tĩnh muộn đã được triển khai. Tính năng này cho phép chúng ta sử dụng lớp có tên trong lần gọi cuối cùng của một thuộc tính.  

Điều này có nghĩa là khi bạn sử dụng trình truy cập

1

Sử dụng

ClassName::staticMethod[];
06 hoặc
ClassName::staticMethod[];
07 trong
ClassName::staticMethod[];
08 sẽ hoạt động mà không có lỗi, nhưng nó sẽ lặp lại “success. ” chứ không phải “thất bại” bởi vì họ sẽ đề cập đến phương pháp
ClassName::staticMethod[];
09 trong Lớp A, không phải phương pháp trong Lớp C.  

Sự kết luận

Chúng tôi đã học một chút về tính kế thừa và các trình truy cập khác nhau, chẳng hạn như bản thân. , tĩnh. cha mẹ. , chúng ta có thể sử dụng khi làm việc với OOP trong PHP. Những bộ truy cập này giúp chúng tôi viết mã sạch triển khai việc sử dụng tính kế thừa và tính đa hình.  

Với những thứ này, chúng tôi có thể xây dựng các cấu trúc dữ liệu hiệu quả giúp dự án của chúng tôi dễ dàng xây dựng, mở rộng quy mô và dễ hiểu ngay cả khi chúng tôi giao mã của mình cho người khác

Tĩnh và không tĩnh là gì?

Phương thức tĩnh là phương thức thuộc về một lớp nhưng không thuộc thể hiện của lớp đó và phương thức này có thể được gọi mà không cần thể hiện hoặc đối tượng của lớp đó. Every method in java defaults to a non-static method without static keyword preceding it.

Sự khác biệt giữa phương thức tĩnh và phương thức không tĩnh trong PHP là gì?

Phương thức tĩnh ¶ . Gọi các phương thức không tĩnh sẽ gây ra lỗi tĩnh. Trước PHP 8. 0. static methods are callable without an instance of the object created, the pseudo-variable $this is not available inside methods declared as static. Calling non-static methods statically throws an Error. Prior to PHP 8.0.

Tĩnh trong PHP là gì?

Từ khóa tĩnh được dùng để khai báo các thuộc tính và phương thức của một lớp là tĩnh . Các thuộc tính và phương thức tĩnh có thể được sử dụng mà không cần tạo một thể hiện của lớp. Từ khóa tĩnh cũng được sử dụng để khai báo các biến trong hàm giữ nguyên giá trị của chúng sau khi hàm kết thúc.

Sự khác biệt giữa tĩnh và không là gì?

Một phương thức tĩnh là một phương thức của lớp và thuộc về chính lớp đó. Điều này có nghĩa là bạn không cần một phiên bản để sử dụng một phương thức tĩnh. Một phương thức không tĩnh là một phương thức thể hiện và thuộc về từng đối tượng được tạo từ lớp

Chủ Đề