Hướng dẫn what is a final key word in php? - từ khóa cuối cùng trong php là gì?

Từ khóa cuối cùng ngăn các lớp con ghi đè một phương thức hoặc hằng số bằng cách tiền tố định nghĩa với final. Nếu bản thân lớp đang được xác định cuối cùng thì nó không thể được mở rộng.

Ví dụ #1 Phương pháp cuối cùng ví dụ

class BaseClass {
   public function 
test() {
       echo 
"BaseClass::test() called\n";
   }

      final public function

moreTesting() {
       echo 
"BaseClass::moreTesting() called\n";
   }
}

class

ChildClass extends BaseClass {
   public function 
moreTesting() {
       echo 
"ChildClass::moreTesting() called\n";
   }
}
// Results in Fatal error: Cannot override final method BaseClass::moreTesting()
?>

Ví dụ #2 Ví dụ về lớp cuối cùng

final class BaseClass {
   public function 
test() {
       echo 
"BaseClass::test() called\n";
   }
// As the class is already final, the final keyword is redundant
   
final public function moreTesting() {
       echo 
"BaseClass::moreTesting() called\n";
   }
}

class

ChildClass extends BaseClass {
}
// Results in Fatal error: Class ChildClass may not inherit from final class (BaseClass)
?>

Ví dụ #3 Hằng số cuối cùng Ví dụ như của Php 8.1.0

class Foo
{
    final public const 
"foo";
}

class

Bar extends Foo
{
    public const 
"bar";
}
// Fatal error: Bar::X cannot override final constant Foo::X
?>

Lưu ý: Thuộc tính không thể được khai báo cuối cùng: chỉ các lớp, phương thức và hằng số (kể từ Php 8.1.0) có thể được khai báo là cuối cùng. Kể từ Php 8.0.0, các phương thức riêng tư có thể không được khai báo cuối cùng ngoại trừ hàm tạo.: Properties cannot be declared final: only classes, methods, and constants (as of PHP 8.1.0) may be declared as final. As of PHP 8.0.0, private methods may not be declared final except for the constructor.

Penartur tại Yandex Dot Ru ¶

15 năm trước

class BaseClass {
   public function 
test() {
       echo 
"BaseClass::test() called\n";
   }
0

class BaseClass {
   public function 
test() {
       echo 
"BaseClass::test() called\n";
   }
1

class BaseClass {
   public function 
test() {
       echo 
"BaseClass::test() called\n";
   }
2

class BaseClass {
   public function 
test() {
       echo 
"BaseClass::test() called\n";
   }
3

Ai đó chấm khác ở nơi khác chấm lưới ¶

8 năm trước

class BaseClass {
   public function 
test() {
       echo 
"BaseClass::test() called\n";
   }
4

class BaseClass {
   public function 
test() {
       echo 
"BaseClass::test() called\n";
   }
5

class BaseClass {
   public function 
test() {
       echo 
"BaseClass::test() called\n";
   }
6

class BaseClass {
   public function 
test() {
       echo 
"BaseClass::test() called\n";
   }
7

class BaseClass {
   public function 
test() {
       echo 
"BaseClass::test() called\n";
   }
8

Cottton tại I-Stats Dot Net

8 năm trước

class BaseClass {
   public function 
test() {
       echo 
"BaseClass::test() called\n";
   }
9

      final public function0

      final public function1

Cottton tại I-Stats Dot Net

8 năm trước

      final public function2

      final public function3

      final public function4

      final public function5

      final public function6

Cottton tại I-Stats Dot Net

Mattsch tại gmail dot com

      final public function7

Santoshjoshi2003 tại Yahoo Dot Co Dot trong ¶

13 năm trước

      final public function8

      final public function5

moreTesting() {
       echo 
"BaseClass::moreTesting() called\n";
   }
}

class

ChildClass extends BaseClass {
   public function 
moreTesting() {
       echo 
"ChildClass::moreTesting() called\n";
   }
}
// Results in Fatal error: Cannot override final method BaseClass::moreTesting()
?>
0

Ẩn danh ¶

15 năm trước

moreTesting() {
       echo 
"BaseClass::moreTesting() called\n";
   }
}

class

ChildClass extends BaseClass {
   public function 
moreTesting() {
       echo 
"ChildClass::moreTesting() called\n";
   }
}
// Results in Fatal error: Cannot override final method BaseClass::moreTesting()
?>
1

Ai đó chấm khác ở nơi khác chấm lưới ¶

13 năm trước

moreTesting() {
       echo 
"BaseClass::moreTesting() called\n";
   }
}

class

ChildClass extends BaseClass {
   public function 
moreTesting() {
       echo 
"ChildClass::moreTesting() called\n";
   }
}
// Results in Fatal error: Cannot override final method BaseClass::moreTesting()
?>
2

moreTesting() {
       echo 
"BaseClass::moreTesting() called\n";
   }
}

class

ChildClass extends BaseClass {
   public function 
moreTesting() {
       echo 
"ChildClass::moreTesting() called\n";
   }
}
// Results in Fatal error: Cannot override final method BaseClass::moreTesting()
?>
3

moreTesting() {
       echo 
"BaseClass::moreTesting() called\n";
   }
}

class

ChildClass extends BaseClass {
   public function 
moreTesting() {
       echo 
"ChildClass::moreTesting() called\n";
   }
}
// Results in Fatal error: Cannot override final method BaseClass::moreTesting()
?>
4

moreTesting() {
       echo 
"BaseClass::moreTesting() called\n";
   }
}

class

ChildClass extends BaseClass {
   public function 
moreTesting() {
       echo 
"ChildClass::moreTesting() called\n";
   }
}
// Results in Fatal error: Cannot override final method BaseClass::moreTesting()
?>
5

moreTesting() {
       echo 
"BaseClass::moreTesting() called\n";
   }
}

class

ChildClass extends BaseClass {
   public function 
moreTesting() {
       echo 
"ChildClass::moreTesting() called\n";
   }
}
// Results in Fatal error: Cannot override final method BaseClass::moreTesting()
?>
6

moreTesting() {
       echo 
"BaseClass::moreTesting() called\n";
   }
}

class

ChildClass extends BaseClass {
   public function 
moreTesting() {
       echo 
"ChildClass::moreTesting() called\n";
   }
}
// Results in Fatal error: Cannot override final method BaseClass::moreTesting()
?>
7

Ẩn danh ¶

8 năm trước

moreTesting() {
       echo 
"BaseClass::moreTesting() called\n";
   }
}

class

ChildClass extends BaseClass {
   public function 
moreTesting() {
       echo 
"ChildClass::moreTesting() called\n";
   }
}
// Results in Fatal error: Cannot override final method BaseClass::moreTesting()
?>
8

moreTesting() {
       echo 
"BaseClass::moreTesting() called\n";
   }
}

class

ChildClass extends BaseClass {
   public function 
moreTesting() {
       echo 
"ChildClass::moreTesting() called\n";
   }
}
// Results in Fatal error: Cannot override final method BaseClass::moreTesting()
?>
9

final class BaseClass {
   public function 
test() {
       echo 
"BaseClass::test() called\n";
   }
// As the class is already final, the final keyword is redundant
   
final public function moreTesting() {
       echo 
"BaseClass::moreTesting() called\n";
   }
}
0

Cottton tại I-Stats Dot Net

Mattsch tại gmail dot com

final class BaseClass {
   public function 
test() {
       echo 
"BaseClass::test() called\n";
   }
// As the class is already final, the final keyword is redundant
   
final public function moreTesting() {
       echo 
"BaseClass::moreTesting() called\n";
   }
}
1

final class BaseClass {
   public function 
test() {
       echo 
"BaseClass::test() called\n";
   }
// As the class is already final, the final keyword is redundant
   
final public function moreTesting() {
       echo 
"BaseClass::moreTesting() called\n";
   }
}
2

class BaseClass {
   public function 
test() {
       echo 
"BaseClass::test() called\n";
   }
3

Santoshjoshi2003 tại Yahoo Dot Co Dot trong ¶

13 năm trước

final class BaseClass {
   public function 
test() {
       echo 
"BaseClass::test() called\n";
   }
// As the class is already final, the final keyword is redundant
   
final public function moreTesting() {
       echo 
"BaseClass::moreTesting() called\n";
   }
}
4

      final public function5

final class BaseClass {
   public function 
test() {
       echo 
"BaseClass::test() called\n";
   }
// As the class is already final, the final keyword is redundant
   
final public function moreTesting() {
       echo 
"BaseClass::moreTesting() called\n";
   }
}
6

Ẩn danh ¶

12 năm trước

final class BaseClass {
   public function 
test() {
       echo 
"BaseClass::test() called\n";
   }
// As the class is already final, the final keyword is redundant
   
final public function moreTesting() {
       echo 
"BaseClass::moreTesting() called\n";
   }
}
7

final class BaseClass {
   public function 
test() {
       echo 
"BaseClass::test() called\n";
   }
// As the class is already final, the final keyword is redundant
   
final public function moreTesting() {
       echo 
"BaseClass::moreTesting() called\n";
   }
}
8

final class BaseClass {
   public function 
test() {
       echo 
"BaseClass::test() called\n";
   }
// As the class is already final, the final keyword is redundant
   
final public function moreTesting() {
       echo 
"BaseClass::moreTesting() called\n";
   }
}
9

class0

class BaseClass {
   public function 
test() {
       echo 
"BaseClass::test() called\n";
   }
3

Từ khóa cuối cùng là gì?

Từ khóa cuối cùng là một công cụ sửa đổi không truy cập được sử dụng cho các lớp, thuộc tính và phương thức, điều này làm cho chúng không thể thay đổi (không thể kế thừa hoặc ghi đè). Từ khóa cuối cùng rất hữu ích khi bạn muốn một biến luôn lưu trữ cùng một giá trị, như PI (3.14159 ...). Từ khóa cuối cùng được gọi là "công cụ sửa đổi".a non-access modifier used for classes, attributes and methods, which makes them non-changeable (impossible to inherit or override). The final keyword is useful when you want a variable to always store the same value, like PI (3.14159...). The final keyword is called a "modifier".

Lớp cuối cùng trong PHP là gì?

Định nghĩa của lớp cuối cùng PHP.Php Final Class là một lớp ngăn chặn việc ghi đè một phương pháp của các lớp con chỉ bằng tiền tố cuối cùng với định nghĩa.Điều đó có nghĩa là nếu chúng ta xác định một phương thức với tiền tố cuối cùng thì nó sẽ ngăn chặn việc ghi đè phương thức.a class which prevents overriding a method of the child classes just by the final prefix with the definition. It means that if we are defining a method with the final prefix then it is going to prevent overriding the method.

Tĩnh và cuối cùng trong PHP là gì?

Tĩnh cuối cùng khai báo một phương thức tĩnh (có thể được gọi mà không có một thể hiện của lớp) và cuối cùng (không thể bị ghi đè bởi các lớp con).Chỉ một mình tĩnh có thể được sử dụng để xác định biến số lớp, không đổi (nhưng các biến không thể là cuối cùng).static declares a method which is static (can be called without an instance of the class) and final (can't be overridden by subclasses). static alone can be used to define a class-scoped variable, which isn't constant (but variables can't be final ).

Việc sử dụng từ khóa cuối cùng trên một phương thức là gì?

Bạn sử dụng từ khóa cuối cùng trong khai báo phương thức để chỉ ra rằng phương thức không thể bị ghi đè bởi các lớp con.to indicate that the method cannot be overridden by subclasses.