Nội dung chính
Xem Chức năng phổ biến php 2024
PHP là ngôn ngữ kịch bản máy chủ và là công cụ mạnh mẽ để tạo các trang Web động và tương tác
PHP là một giải pháp thay thế được sử dụng rộng rãi, miễn phí và hiệu quả cho các đối thủ cạnh tranh như ASP của Microsoft
Bắt đầu học PHP ngay bây giờ »
Học dễ dàng với “PHP Tryit”
Với trình chỉnh sửa “PHP Tryit” trực tuyến của chúng tôi, bạn có thể chỉnh sửa mã PHP và nhấp vào nút để xem kết quả
Thí dụ
echo “Tập lệnh PHP đầu tiên của tôi. “;
?>
Tự mình thử »
Nhấp vào nút “Tự dùng thử” để xem nó hoạt động như thế nào
Bài tập PHP
Kiểm tra bản thân với các bài tập
Tập thể dục
Chèn phần còn thiếu của mã bên dưới để xuất “Xin chào thế giới”
Cung cấp câu trả lời “
Ví dụ PHP
Tìm hiểu bằng các ví dụ. Hướng dẫn này bổ sung tất cả các giải thích với các ví dụ rõ ràng
Xem tất cả các ví dụ về PHP
Bài kiểm tra PHP
Học bằng cách làm bài kiểm tra. Bài kiểm tra này sẽ cung cấp cho bạn tín hiệu về mức độ bạn biết hoặc không biết về PHP
Bắt đầu bài kiểm tra PHP
Việc học của tôi
Theo dõi tiến trình của bạn với chương trình “Học tập của tôi” miễn phí tại W3Schools
Đăng nhập vào tài khoản của bạn và bắt đầu kiếm điểm
Đây là một tính năng tùy chọn. Bạn có thể học W3Schools mà không cần sử dụng My Learning
Tài liệu tham khảo PHP
Tài liệu tham khảo PHP của W3Schools chứa các danh mục khác nhau của tất cả các hàm, từ khóa và hằng số PHP, cùng với các ví dụ
// Using short array syntax.
// Also, works with array() syntax.
$arr1 = [1, 2, 3];
$arr2 = [...$arr1]; //[1, 2, 3]$arr3 = [0, ...$arr1]; //[0, 1, 2, 3]$arr4 = [...$arr1, ...$arr2, 111]; //[1, 2, 3, 1, 2, 3, 111]$arr5 = [...$arr1, ...$arr1]; //[1, 2, 3, 1, 2, 3]
function getArr() {
return ['a', 'b'];
}
$arr6 = [...getArr(), 'c' => 'd']; //['a', 'b', 'c' => 'd']?>
Các đặc điểm là một cơ chế để tái sử dụng mã trong các ngôn ngữ kế thừa đơn lẻ như PHP. Một Đặc điểm nhằm giảm bớt một số hạn chế của thừa kế đơn lẻ bằng cách cho phép nhà phát triển sử dụng lại các bộ phương thức một cách tự do trong một số lớp độc lập sống trong các hệ thống phân cấp lớp khác nhau. Ngữ nghĩa của sự kết hợp giữa Đặc điểm và lớp được xác định theo cách làm giảm độ phức tạp và tránh các vấn đề điển hình liên quan đến đa kế thừa và Mixins
Một Đặc điểm tương tự như một lớp, nhưng chỉ nhằm mục đích nhóm các chức năng theo cách chi tiết và nhất quán. Không thể tự khởi tạo một Đặc điểm. Nó là một bổ sung cho sự kế thừa truyền thống và cho phép cấu thành hành vi theo chiều ngang;
Ví dụ #1 Ví dụ về đặc điểm
trait ezcReflectionReturnInfo {
function getReturnType() { /*1*/ }
function getReturnDescription() { /*2*/ }
}
class ezcReflectionMethod extends ReflectionMethod {
use ezcReflectionReturnInfo;
/* ... */
}
class ezcReflectionFunction extends ReflectionFunction {
use ezcReflectionReturnInfo;
/* ... */
}
?>
Quyền ưu tiên
Thành viên kế thừa từ lớp cơ sở bị ghi đè bởi thành viên được chèn bởi Trait. Thứ tự ưu tiên là các thành viên từ các phương thức Trait của lớp hiện tại sẽ ghi đè lên các phương thức kế thừa
Ví dụ #2 Ví dụ về thứ tự ưu tiên
Phương thức kế thừa từ lớp cơ sở bị ghi đè bởi phương thức được chèn vào MyHelloWorld từ SayWorld Trait. Hành vi này giống với các phương thức được định nghĩa trong lớp MyHelloWorld. Thứ tự ưu tiên là các phương thức từ lớp hiện tại ghi đè lên các phương thức Trait, từ đó ghi đè lên các phương thức từ lớp cơ sở
class Base {
public function sayHello() {
echo 'Hello ';
}
}
trait SayWorld {
public function sayHello() {
parent::sayHello();
echo 'World!';
}
}
class MyHelloWorld extends Base {
use SayWorld;
}
________số 8
Ví dụ trên sẽ xuất ra
Ví dụ #3 Ví dụ về thứ tự ưu tiên thay thế
trait HelloWorld {
public function sayHello() {
echo 'Hello World!';
}
}
function getArr() {
0
return ['a', 'b'];
}
$arr6 = [...getArr(), 'c' => 'd']; //['a', 'b', 'c' => 'd']?>
function getArr() {
1
return ['a', 'b'];
}
$arr6 = [...getArr(), 'c' => 'd']; //['a', 'b', 'c' => 'd']?>
Ví dụ trên sẽ xuất ra
Nhiều đặc điểm
Nhiều Đặc điểm có thể được chèn vào một lớp bằng cách liệt kê chúng trong câu lệnh class ezcReflectionMethod extends ReflectionMethod {
0, được phân tách bằng dấu phẩy
use ezcReflectionReturnInfo;
/* ... */
}
Ví dụ #4 Sử dụng nhiều đặc điểm
class ezcReflectionMethod extends ReflectionMethod {
1
use ezcReflectionReturnInfo;
/* ... */
}
class ezcReflectionMethod extends ReflectionMethod {
2
use ezcReflectionReturnInfo;
/* ... */
}
class ezcReflectionMethod extends ReflectionMethod {
3
use ezcReflectionReturnInfo;
/* ... */
}
class ezcReflectionMethod extends ReflectionMethod {
4
use ezcReflectionReturnInfo;
/* ... */
}
Ví dụ trên sẽ xuất ra
Giải quyết xung đột
Nếu hai Đặc điểm chèn một phương thức có cùng tên, thì sẽ xảy ra lỗi nghiêm trọng nếu xung đột không được giải quyết rõ ràng
Để giải quyết xung đột đặt tên giữa các Đặc điểm được sử dụng trong cùng một lớp, toán tử class ezcReflectionMethod extends ReflectionMethod {
5 cần được sử dụng để chọn chính xác một trong các phương thức xung đột
use ezcReflectionReturnInfo;
/* ... */
}
Vì điều này chỉ cho phép một phương thức loại trừ, toán tử class ezcReflectionMethod extends ReflectionMethod {
6 có thể được sử dụng để thêm bí danh cho một trong các phương thức. Lưu ý toán tử
use ezcReflectionReturnInfo;
/* ... */
}class ezcReflectionMethod extends ReflectionMethod {
6 không đổi tên phương thức và nó cũng không ảnh hưởng đến bất kỳ phương thức nào khác
use ezcReflectionReturnInfo;
/* ... */
}
Ví dụ #5 Giải quyết xung đột
Trong ví dụ này, Talker sử dụng các đặc điểm A và B. Vì A và B có các phương thức xung đột nên nó xác định sử dụng biến thể của smallTalk từ đặc điểm B và biến thể của bigTalk từ đặc điểm A
Aliased_Talker sử dụng toán tử class ezcReflectionMethod extends ReflectionMethod {
6 để có thể sử dụng triển khai bigTalk của B dưới một bí danh bổ sung
use ezcReflectionReturnInfo;
/* ... */
}class ezcReflectionMethod extends ReflectionMethod {
9
use ezcReflectionReturnInfo;
/* ... */
}
class ezcReflectionFunction extends ReflectionFunction {
0
use ezcReflectionReturnInfo;
/* ... */
}
?>
class ezcReflectionFunction extends ReflectionFunction {
1
use ezcReflectionReturnInfo;
/* ... */
}
?>
class ezcReflectionFunction extends ReflectionFunction {
2
use ezcReflectionReturnInfo;
/* ... */
}
?>
class ezcReflectionFunction extends ReflectionFunction {
3
use ezcReflectionReturnInfo;
/* ... */
}
?>
Thay đổi phương thức hiển thị
Sử dụng cú pháp class ezcReflectionMethod extends ReflectionMethod {
6, người ta cũng có thể điều chỉnh mức độ hiển thị của phương thức trong lớp trưng bày
use ezcReflectionReturnInfo;
/* ... */
}
Ví dụ #6 Thay đổi phương thức hiển thị
trait HelloWorld {
public function sayHello() {
echo 'Hello World!';
}
}
class ezcReflectionFunction extends ReflectionFunction {
6
use ezcReflectionReturnInfo;
/* ... */
}
?>
class ezcReflectionFunction extends ReflectionFunction {
7
use ezcReflectionReturnInfo;
/* ... */
}
?>
Đặc điểm tổng hợp từ đặc điểm
Giống như các lớp có thể sử dụng các đặc điểm, các đặc điểm khác cũng vậy. Bằng cách sử dụng một hoặc nhiều đặc điểm trong một định nghĩa đặc điểm, nó có thể bao gồm một phần hoặc toàn bộ các thành viên được xác định trong các đặc điểm khác đó
Ví dụ #7 Các đặc điểm được tổng hợp từ các đặc điểm
class ezcReflectionMethod extends ReflectionMethod {
1
use ezcReflectionReturnInfo;
/* ... */
}
class ezcReflectionFunction extends ReflectionFunction {
9
use ezcReflectionReturnInfo;
/* ... */
}
?>
class Base {
0
public function sayHello() {
echo 'Hello ';
}
}
class Base {
1
public function sayHello() {
echo 'Hello ';
}
}
class Base {
2
public function sayHello() {
echo 'Hello ';
}
}
Ví dụ trên sẽ xuất ra
Thành viên đặc điểm trừu tượng
Các đặc điểm hỗ trợ việc sử dụng các phương thức trừu tượng để áp đặt các yêu cầu đối với lớp trưng bày. Các phương thức công khai, được bảo vệ và riêng tư được hỗ trợ. Trước PHP 8. 0. 0, chỉ các phương thức trừu tượng công khai và được bảo vệ mới được hỗ trợ
thận trọng
Một lớp cụ thể đáp ứng yêu cầu này bằng cách định nghĩa một phương thức cụ thể có cùng tên;
Ví dụ #8 Thể hiện Yêu cầu bằng Phương thức Trừu tượng
class Base {
3
public function sayHello() {
echo 'Hello ';
}
}
class Base {
4
public function sayHello() {
echo 'Hello ';
}
}
Thành viên đặc điểm tĩnh
Các đặc điểm có thể xác định các biến tĩnh, phương thức tĩnh và thuộc tính tĩnh
Ghi chú
Kể từ PHP 8. 1. 0, việc gọi một phương thức tĩnh hoặc truy cập trực tiếp vào một thuộc tính tĩnh trên một đặc điểm không được dùng nữa. Các phương thức và thuộc tính tĩnh chỉ nên được truy cập trên một lớp bằng cách sử dụng đặc điểm
Ví dụ #9 Biến tĩnh
class Base {
5
public function sayHello() {
echo 'Hello ';
}
}
class Base {
6
public function sayHello() {
echo 'Hello ';
}
}
class Base {
7
public function sayHello() {
echo 'Hello ';
}
}
class Base {
8
public function sayHello() {
echo 'Hello ';
}
}
Ví dụ #10 Phương thức tĩnh
class Base {
9
public function sayHello() {
echo 'Hello ';
}
}
trait SayWorld {
0
public function sayHello() {
parent::sayHello();
echo 'World!';
}
}
trait SayWorld {
1
public function sayHello() {
parent::sayHello();
echo 'World!';
}
}
Ví dụ #11 Thuộc tính tĩnh
trait SayWorld {
2
public function sayHello() {
parent::sayHello();
echo 'World!';
}
}
trait SayWorld {
0
public function sayHello() {
parent::sayHello();
echo 'World!';
}
}
trait SayWorld {
4
public function sayHello() {
parent::sayHello();
echo 'World!';
}
}
Đặc tính
Các đặc điểm cũng có thể xác định các thuộc tính
Ví dụ #12 Xác định thuộc tính
trait SayWorld {
5
public function sayHello() {
parent::sayHello();
echo 'World!';
}
}
trait SayWorld {
6
public function sayHello() {
parent::sayHello();
echo 'World!';
}
}
trait SayWorld {
7
public function sayHello() {
parent::sayHello();
echo 'World!';
}
}
Nếu một đặc điểm xác định một thuộc tính thì một lớp không thể định nghĩa một thuộc tính có cùng tên trừ khi nó tương thích (cùng khả năng hiển thị và loại, công cụ sửa đổi chỉ đọc và giá trị ban đầu), nếu không sẽ xảy ra lỗi nghiêm trọng
Ví dụ #13 Giải quyết xung đột
trait SayWorld {
8
public function sayHello() {
parent::sayHello();
echo 'World!';
}
}
trait SayWorld {
9
public function sayHello() {
parent::sayHello();
echo 'World!';
}
}
hằng số
Các đặc điểm có thể, kể từ PHP 8. 2. 0, cũng xác định hằng số
Ví dụ #14 Xác định hằng số
class MyHelloWorld extends Base {
0
use SayWorld;
}
class MyHelloWorld extends Base {
1
use SayWorld;
}
class MyHelloWorld extends Base {
2
use SayWorld;
}
Nếu một đặc điểm xác định một hằng số thì một lớp không thể định nghĩa một hằng số có cùng tên trừ khi nó tương thích (cùng khả năng hiển thị, giá trị ban đầu và tính hữu hạn), nếu không sẽ xảy ra lỗi nghiêm trọng
Bạn đang tìm hiểu bài viết: Chức năng phổ biến php 2024
HỆ THỐNG CỬA HÀNG TRÙM SỈ QUẢNG CHÂU
Điện thoại: 092.484.9483
Zalo: 092.484.9483
Facebook: https://facebook.com/giatlathuhuongcom/
Website: Trumsiquangchau.com
Địa chỉ: Ngõ 346 Nam Dư, Trần Phú, Hoàng Mai, Hà Nội.