Tĩnh lấy php

Đối với các trường hợp bạn muốn liên kết một số dữ liệu với toàn bộ lớp đối tượng, nhưng dữ liệu không cố định (nói cách khác là hằng số), bạn có thể tạo các biến thành viên toàn cục cho toàn bộ lớp, không chỉ các trường hợp cụ thể. Trong PHP, chúng được gọi là các biến thành viên tĩnh. Chúng được khai báo bằng cách thêm tiền tố vào phần khai báo của chúng với từ khóa static

Bạn sẽ khai báo các biến thành viên tĩnh giống như bất kỳ biến nào khác; . Đối với ví dụ trước, lớp User, tôi đã khai báo một biến lớp tĩnh có tên là x mà bất kỳ ai cũng có thể truy cập và sửa đổi. Bất kỳ thể hiện nào của lớp User đều thấy cùng một giá trị nếu nó yêu cầu giá trị của x và nó không có vị trí lưu trữ riêng cho nó

reset();

Không giống như các hằng lớp, các biến thành viên tĩnh không chỉ đọc. Truy cập giá trị của biến tĩnh tương tự như truy cập hằng số lớp. Bạn có thể sử dụng tên loại. User::$x (bên ngoài hoặc trong lớp) hoặc từ khóa

reset();
0 (
reset();
1) trong lớp, cả hai đều được theo sau bởi toán tử phân giải phạm vi (
reset();
2) và tên của biến tĩnh, bắt đầu bằng
reset();
3

Trong ví dụ trước, để sử dụng phương thức

reset();
4, bạn phải tạo một thể hiện mới của lớp User. Bạn có thể nếu bạn muốn truy cập trực tiếp vào phương thức
reset();
4

Một ví dụ thú vị hơn, tôi có thể sử dụng một biến thành viên tĩnh để đếm số lượng phiên bản của một lớp đã được tạo

________số 8_______

Phương thức tĩnh

Cũng sẽ có lúc bạn muốn liên kết các phương thức với loại của mình không nhất thiết phải hoạt động trên một trường hợp cụ thể mà là các hoạt động rộng liên quan đến loại đó

Ví dụ: tôi có thể muốn định nghĩa một phương thức trên lớp User trả về tất cả các thể hiện (đối tượng) của lớp. Tôi khai báo một biến mảng tĩnh

reset();
8 lưu trữ từng thể hiện của lớp và tôi khai báo một phương thức tĩnh
reset();
9 bằng cách khai báo một hàm bình thường có kèm theo từ khóa tĩnh, phương thức này trả về mảng
reset();
8

username = $u;
   self::$users[$u] = $this; # Store each instance
  }
  public function getUsername() {
   return $this->username;
  }
  public static function getAllInstances() {
   return self::$users;
  }
 }
 
 # The new instances are not assigned to variables
 new User('Admin');
 new User('BrainBell');
 new User('Guest');
 
 $users = User::getAllInstances();
 
 foreach($users as $user)
  echo $user->getUsername() . ', ';
 # Prints: Admin, BrainBell, Guest,

Các phương thức tĩnh được phép có công cụ sửa đổi khả năng hiển thị là

username = $u;
   self::$x++;
   echo 'Instances created: '. self::$x .'
'; } public function getUsername() { return $this->username; } } $user1 = new User('Admin'); # Prints: Instances created: 1 $user2 = new User(); # Prints: Instances created: 2 $user3 = new User('BrainBell'); # Prints: Instances created: 3
1 hoặc
username = $u;
   self::$x++;
   echo 'Instances created: '. self::$x .'
'; } public function getUsername() { return $this->username; } } $user1 = new User('Admin'); # Prints: Instances created: 1 $user2 = new User(); # Prints: Instances created: 2 $user3 = new User('BrainBell'); # Prints: Instances created: 3
2 để hạn chế quyền truy cập thông tin

reset();
2 so với.
username = $u;
   self::$x++;
   echo 'Instances created: '. self::$x .'
'; } public function getUsername() { return $this->username; } } $user1 = new User('Admin'); # Prints: Instances created: 1 $user2 = new User(); # Prints: Instances created: 2 $user3 = new User('BrainBell'); # Prints: Instances created: 3
4 và
reset();
0 so với.
username = $u;
   self::$x++;
   echo 'Instances created: '. self::$x .'
'; } public function getUsername() { return $this->username; } } $user1 = new User('Admin'); # Prints: Instances created: 1 $user2 = new User(); # Prints: Instances created: 2 $user3 = new User('BrainBell'); # Prints: Instances created: 3
6

Đối với những người nhầm lẫn về sự khác biệt giữa

reset();
2 và
username = $u;
   self::$x++;
   echo 'Instances created: '. self::$x .'
'; } public function getUsername() { return $this->username; } } $user1 = new User('Admin'); # Prints: Instances created: 1 $user2 = new User(); # Prints: Instances created: 2 $user3 = new User('BrainBell'); # Prints: Instances created: 3
4 hoặc
reset();
0 và
username = $u;
   self::$x++;
   echo 'Instances created: '. self::$x .'
'; } public function getUsername() { return $this->username; } } $user1 = new User('Admin'); # Prints: Instances created: 1 $user2 = new User(); # Prints: Instances created: 2 $user3 = new User('BrainBell'); # Prints: Instances created: 3
6, tôi trình bày các quy tắc sau