Theo mặc định, các biến PHP, nhưng không phải đối tượng, được truyền theo giá trị. Khi các biến PHP được truyền theo giá trị, phạm vi biến, được xác định ở cấp hàm được liên kết trong phạm vi của hàm. Việc sửa đổi một trong hai biến không có tác động
Hãy xem một ví dụ
Đầu ra sẽ như sau
Function w3docs Global w3docs
Để truyền biến theo tham chiếu, cần thêm ký hiệu dấu và [&] trước đối số của biến
Một ví dụ về một chức năng như vậy sẽ như sau. hàm[ &$x ]
Phạm vi của các biến toàn cục và hàm trở thành toàn cầu. Lý do là chúng được xác định bởi cùng một tham chiếu. Do đó, sau khi thay đổi biến toàn cục, biến bên trong hàm cũng bị thay đổi theo.
Đây là một ví dụ rõ ràng
đầu ra sẽ là
Function w3docs Function w3docsCác đối tượng PHP theo mặc định được truyền theo tham chiếu
Đầu ra sẽ như sau
1
Theo quy định, các biến PHP bắt đầu bằng dấu $ theo sau là tên biến
Khi gán một giá trị văn bản cho một biến, việc đặt dấu ngoặc kép xung quanh giá trị là cần thiết
Khác với các ngôn ngữ lập trình khác, PHP không có lệnh khai báo biến. Nó được tạo ra tại thời điểm một giá trị được gán cho nó lần đầu tiên
Trong PHP, biến là nơi chứa dữ liệu
Các biến PHP có thể có cả tên ngắn [ví dụ: x và y] và tên mô tả hơn [tên trái cây, tuổi, chiều cao, v.v.]
PHP có hơn 1000 hàm dựng sẵn có thể được gọi trực tiếp từ bên trong tập lệnh để thực hiện một tác vụ cụ thể
Vui lòng kiểm tra tài liệu tham khảo PHP của chúng tôi để biết tổng quan đầy đủ về các hàm tích hợp PHP
Các hàm do người dùng định nghĩa PHP
Bên cạnh các hàm PHP có sẵn, bạn có thể tạo các hàm của riêng mình
- Hàm là một khối câu lệnh có thể được sử dụng lặp đi lặp lại trong một chương trình
- Một chức năng sẽ không tự động thực thi khi tải trang
- Một chức năng sẽ được thực hiện bởi một lời gọi đến chức năng
Tạo một hàm do người dùng định nghĩa trong PHP
Khai báo hàm do người dùng định nghĩa bắt đầu bằng từ function
cú pháp
hàm functionName[] {
mã được thực thi;
}
Ghi chú. Tên hàm phải bắt đầu bằng một chữ cái hoặc dấu gạch dưới. Tên hàm KHÔNG phân biệt chữ hoa chữ thường
Mẹo. Đặt cho hàm một tên phản ánh chức năng của nó
Trong ví dụ bên dưới, chúng ta tạo một hàm tên là "writeMsg[]". Dấu ngoặc nhọn mở [ { ] cho biết phần đầu của mã chức năng và dấu ngoặc nhọn đóng [ } ] cho biết phần cuối của hàm. Hàm xuất ra "Xin chào thế giới. ". Để gọi hàm, chỉ cần viết tên của nó theo sau dấu ngoặc []
Thí dụ
hàm writeMsg[] {
tiếng vang "Xin chào thế giới. “;
}
writeMsg[];
?>
Đối số chức năng PHP
Thông tin có thể được chuyển đến các chức năng thông qua các đối số. Một đối số giống như một biến
Các đối số được chỉ định sau tên hàm, bên trong dấu ngoặc đơn. Bạn có thể thêm bao nhiêu đối số tùy thích, chỉ cần phân tách chúng bằng dấu phẩy
Ví dụ sau có một hàm với một đối số [$fname]. Khi hàm familyName[] được gọi, chúng ta cũng chuyển một tên [e. g. Jani], và tên được sử dụng bên trong hàm, hàm này xuất ra một số tên khác nhau, nhưng họ bằng nhau
Thí dụ
hàm familyName[$fname] {
echo "$fname Tham chiếu
“;
}
familyName["Jani"];
familyName["Hege"];
familyName["Stale"];
familyName["Kai Jim"];
familyName["Borge"];
?>
Ví dụ sau có một hàm với hai đối số [$fname và $year]
Thí dụ
function familyName[$fname, $year] {
echo "$fname Tham chiếu. Sinh năm $
“;
}
familyName["Hege", "1975"];
familyName["Stale", "1978"];
familyName["Kai Jim", "1983"];
?>
PHP là một ngôn ngữ được gõ lỏng lẻo
Trong ví dụ trên, hãy lưu ý rằng chúng ta không cần phải cho PHP biết biến đó thuộc kiểu dữ liệu nào.
PHP tự động liên kết kiểu dữ liệu với biến, tùy thuộc vào giá trị của nó. Vì các kiểu dữ liệu không được đặt theo nghĩa chặt chẽ, nên bạn có thể thực hiện những việc như thêm chuỗi vào số nguyên mà không gây ra lỗi
Trong PHP 7, khai báo kiểu đã được thêm vào. Điều này cung cấp cho chúng tôi một tùy chọn để chỉ định loại dữ liệu dự kiến khi khai báo một hàm và bằng cách thêm khai báo strict
, nó sẽ đưa ra "Lỗi nghiêm trọng" nếu loại dữ liệu không khớp
Trong ví dụ sau, chúng tôi cố gắng gửi cả số và chuỗi tới hàm mà không sử dụng strict
Thí dụ
hàm addNumbers[int $a, int $b] {
trả về $a + $b;
}
echo addNumbers[5, "5 ngay"];
// vì nghiêm ngặt KHÔNG được bật "5 ngày" được đổi thành int[5] và nó sẽ trả về 10
?>
Để chỉ định strict
, chúng ta cần đặt declare[strict_types=1];
. Điều này phải nằm trên dòng đầu tiên của tệp PHP
Trong ví dụ sau, chúng tôi cố gắng gửi cả một số và một chuỗi vào hàm, nhưng ở đây chúng tôi đã thêm khai báo strict
Thí dụ
hàm addNumbers[int $a, int $b] {
trả về $a + $b;
}
echo addNumbers[5, "5 ngay"];
// vì nghiêm ngặt được bật và "5 ngày" không phải là số nguyên, nên sẽ xảy ra lỗi
?>
Tuyên bố strict
buộc mọi thứ phải được sử dụng theo cách đã định
Giá trị đối số mặc định PHP
Ví dụ sau đây cho thấy cách sử dụng tham số mặc định. Nếu chúng ta gọi hàm setHeight[] mà không có đối số thì nó sẽ lấy giá trị mặc định làm đối số
Thí dụ
hàm setHeight[int $minheight = 50] {
echo "Chiều cao là. $minheight
“;
}
setHeight[350];
setHeight[];
setHeight[135];
setHeight[80];
?>
Hàm PHP - Trả về giá trị
Để một hàm trả về một giá trị, hãy sử dụng câu lệnh return
Thí dụ
hàm tổng[int $x, int $y] {
$z = $x + $y;
trả về $z;
}
tiếng vang "5 + 10 = ". tổng[5, 10]. "
“;
tiếng vang "7 + 13 = ". tổng[7, 13]. "
“;
tiếng vang "2 + 4 = ". tổng[2, 4];
?>
Khai báo kiểu trả về PHP
PHP 7 cũng hỗ trợ Khai báo kiểu cho câu lệnh return
. Giống như với khai báo kiểu cho các đối số hàm, bằng cách kích hoạt yêu cầu nghiêm ngặt, nó sẽ đưa ra "Lỗi nghiêm trọng" đối với kiểu không khớp
Để khai báo kiểu cho hàm trả về, hãy thêm dấu hai chấm [ function
0 ] và kiểu ngay trước dấu ngoặc nhọn mở [ function
1 ] khi khai báo hàm
Trong ví dụ sau, chúng tôi chỉ định kiểu trả về cho hàm
Thí dụ
hàm addNumbers[float $a, float $b]. trôi nổi {
trả về $a + $b;
}
echo addNumbers[1. 2, 5. 2];
?>
Bạn có thể chỉ định một kiểu trả về khác với kiểu đối số, nhưng hãy đảm bảo kiểu trả về là đúng
Thí dụ
hàm addNumbers[float $a, float $b]. int {
trả lại [int][$a + $b];
}
echo addNumbers[1. 2, 5. 2];
?>
Truyền đối số theo tham chiếu
Trong PHP, các đối số thường được truyền theo giá trị, có nghĩa là một bản sao của giá trị được sử dụng trong hàm và biến được truyền vào hàm không thể thay đổi
Khi một đối số hàm được truyền theo tham chiếu, các thay đổi đối với đối số cũng thay đổi biến được truyền vào. Để biến một đối số của hàm thành một tham chiếu, toán tử function
2 được sử dụng