Php mình
PHP chạy trên môi trường WebServer và lưu trữ thông tin dữ liệu thông qua hệ thống quản trị cơ sở dữ liệu nên PHP thường đi kèm với Apache, MySQL và hệ điều hành Linux (LAMP) Show
PHP hoạt động như thế nào? Khi người sử dụng gọi trang PHP, Web Server sẽ gọi PHP Engine để thông dịch trang PHP và trả kết quả cho người dùng như hình bên dưới Các bước cài đặt Web server Bước 1. Tải xuống XAMPP tại https. //www. apachefriends. tổ chức/tải xuống. html và tiến trình cài đặt như các chương trình thông thường Bước 2. Kích vào nút Start Apache và MySQL trên cửa sổ XAMPP Control Panel Bước 3. Mở trình duyệt (IE, FireFox hoặc Chrome), rồi nhập vào thanh địa chỉ trình duyệt localhost. Nếu màn hình hiện ra thì việc cài đặt đã thành công Bước 4. Truy cập thư mục cài đặt XAMPP/htdocs và tạo tệp cài đặt là test. php with the content as after
Gõ trên duyệt địa chỉ localhost/test. php. Nếu hiện ra dòng chữ Hello World có nghĩa là ứng dụng PHP đầu tiên đã chạy thành công Như ở phần cuối của bài tĩnh và bài cuối trong PHP mình có nói là giữa tĩnh và bản thân nó khác nhau ở một số trường hợp. Và để chứng minh cho điều đó thì bài hôm nay mình sẽ giới thiệu với mọi người những sự thật khác nhau đó 1, Tổng quanNhìn chung thì cả 5 và 6 đều dùng để gọi các thành phần tĩnh trong đối tượng, nhưng nếu chỉ đơn thuần như trong lớp nội bộ thì cả 2 7 này đều cho kết quả tốtVD
Kết Quả
Vậy liệu nó có cho ra các giá trị khác nhau khi chúng ta sử dụng tính kế thừa trong lớp không? 2, So Sánh và kết luậnVẫn là lớp ConNguoi as on but we will khai báo thêm một lớp NguoiLon kế thừa lớp ConNguoi and override lại thuộc tính $name as after
Sau khi run line on thì mình thu được kết quả như sau
-Như các bạn đã thấy. Đối với self thì kết quả chạy như bình thường, còn với static thì sao nó báo lại là không thể truy cập vào thuộc tính private mà lại là NguoiLon. $name, phải chăng dây tĩnh này đại diện cho đối tượng hiện tại nên không thể truy xuất thuộc tính $name. Thôi được rồi, để chắc ăn hơn thì mình thử đổi khả năng hiển thị của biến $name thành protected xem sao? ________số 8Và đây là kết quả mình nhận được
Time has been running good, but when it again for 2 results other nhau. Từ 2 ví dụ trên chúng ta tạm thời thiêu ra kết luận là static nó có nguyên tắc gần như 8, đều truy xuất đến các đối tượng hiện tạiĐể ok hơn nữa thì mình sẽ tiếp tục tạo ví dụ sau và chạy nó 1Ok, nó đã chạy được và cho ra kết quả giống với kết luận ở trên. Lúc này thì không cần phải sợ hãi gì nữa mà không có câu kết luận khẳng định Kết LuậnBản thân. Truy xuất đến lớp khai báo nó. tĩnh. Truy xuất đến đối tượng hiện tại 3, Lời kết-Như vậy mình đã giới thiệu xong đến tất cả mọi người về sự khác nhau của self và static trong PHP, ngoài ra các bạn có thể xem thêm bài so sánh giữa this và self trong PHP của mình tại đây 4, Nguồn-https. //toidicode. com/self-va-static-trong-php-128. html Đã đăng ký Bản quyền Đã đăng vào ngày 29 tháng 1 năm 2018 3. 18 SA 3 phút đọc Đặt vấn đềChúng ta cùng nhau tìm hiểu thông qua một số đoạn mã ví dụ dưới đây. Giả sử chúng ta có hạng Xe như sau 2Ta có thể thấy phương thức 9 của lớp 0 là phương thức tĩnh. The must be used that not started to create a object 5Kết quả sẽ là 6Từ khóa self will call function 1 thuộc về lớp 0 và in ra dòng chữ "I am a Car" as on. Bây giờ chúng ta sẽ tạo thêm một lớp gọi là lớp 3 kế thừa lớp 0 ở trên 0 5 kế thưà 6 nên dĩ nhiên sẽ kế thừa hàm model() đã được định nghĩa ở 6. Vì vậy theo bạn thì điều gì sẽ xảy ra khi thay vì gọi 8 chúng ta sẽ gọi 9 như thế này ? 1Không phải đâu, kết quả thật sự vẫn sẽ là 2Bản thânChuyện gì đã xảy ra ở bên trên ? . Bởi vì từ khóa 5 đã tham chiếu đến lớp chính đã xác định nghĩa của nó ( 6) thay vì 1 hiện tại. Điều này dẫn đến công việc nó sẽ gọi hàm 0 của 6 thay vì gọi hàm 0 của 1. Như ta thấy ở trên, phương thức 9 đã định nghĩa ở 6 đã không bị ghi đè trong 6. Bởi vì từ khóa 5 đã tham chiếu đến chính class đã định nghĩa nó ( 6) thay vì 1 hiện tại. Điều này dẫn đến việc nó sẽ gọi hàm 0 của 6 thay vì gọi đến 0 của 1...Trường hợp trên chả phù hợp với tính đa hình trong oop chút nào cả. Lớp con kế thừa lớp cha mà không thể ghi đè lên nó. Và vì vấn đề trên nên từ phiên bản PHP 5. 3 trở đi đã cung cấp cho chúng ta một điểm mới gọi là 4Liên kết tĩnh và tĩnh muộnBây giờ ở lớp Xe ta thực hiện một thay đổi nhỏ. Thay vì dùng từ khóa 5 ta chuyển đổi nó thành 6 như sau 3Và thực hiện lại lời gọi hàm 9 ta sẽ thấy kết quả trả về như ta mong muốn 1Đây chính là cái gọi là liên kết tĩnh muộn trong PHP. Khi sử dụng từ khóa 6 thay vì 5, thì khi ta gọi một chức năng tĩnh, nó sẽ tham chiếu đến lớp mà nó được gọi thay vì lớp đã định nghĩa nó như khi ta sử dụng từ khóa 5. Trong trường hợp này, ta gọi 9 từ 1 nên nó tham chiếu đến 1 và sẽ gọi đến 0 của 5 thay vì 6 như ở trường hợp ta sử dụng từ khóa 5Kết luậnQua bài viết nhỏ trên mình xin phân biệt sự khác nhau giữa "self" và "static" trong PHP. Mong nhận được sự đóng góp ý kiến, chỉnh sửa từ mọi người |