Mặc dù nó có thể không phổ biến như phiên bản Java, nhưng việc làm theo Hướng dẫn về Phong cách PHP của Apache chắc chắn sẽ không ảnh hưởng gì. Đối với quy ước đặt tên
đặt tên. FunctionNamesLike, $localVariableName, $objectVariable, ClassNamesLike, MethodNamesLike, CONSTANTS_LIKE_THIS. Tên toàn cầu [lớp, hàm, biến, định nghĩa] phải được thêm tiền tố để tránh xung đột đặt tên với chính PHP. Cách tiếp cận này bao gồm việc ngăn chặn các tiền tố xung đột với PHP hoặc có khả năng. Ngoài các hằng số, hãy ngăn các dấu gạch dưới trong tên của bạn trừ khi bạn mô phỏng các không gian tên và chắc chắn rằng bạn có thể chuyển sang các không gian tên thực sau khi PHP có chúng [và tất nhiên là đối với các biến đối tượng]
Theo đó, tên lớp và phương thức sẽ là PascalCased
Ngoài ra còn có một số hướng dẫn phong cách hợp lý khác, như được liệt kê ở đây. Hầu hết dường như đồng ý rằng tên lớp nên là PascalCased
nhưng một số, bao gồm cả hướng dẫn về phong cách của MIT, chỉ ra rằng các phương thức nên là camelCased
Vì vậy, bốn năm sau khi tôi trả lời câu hỏi này ban đầu, tôi sẽ nói đi với câu trả lời được chấp nhận ở trên
Các mảng tuân theo cùng một quy tắc đối với các biến, ngoại trừ dữ liệu từ cơ sở dữ liệu phải được đặt tên là $data và trong các vòng lặp phải luôn có các cặp $key => $row
foreach [$data as $key => $row] { echo $row['something']; }
hoặc nếu bạn không cần chìa khóa
foreach [$data as $row] { echo $row['something']; }
Chức năng
Các chức năng phải tuân theo camelCaseConvention, có nghĩa là không có dấu cách và không có dấu gạch dưới, chữ thường với chữ cái đầu tiên của mỗi từ - chữ hoa [trừ từ đầu tiên]
function fetch [] { .. } function anotherFunction [] { .. } function yetAnotherLongFunction [] { .. }
Tất cả các tên phải được mô tả và giải thích chức năng nào thực hiện hoặc trả về
Các lớp học
Tên lớp là chữ thường với mỗi chữ cái đầu tiên viết hoa và gạch dưới ["_"] cho khoảng trắng
class Database { .. } class Mysql_Database { .. } class My_Other_Class_Name { .. }
Cuối mỗi tiết học ghi nhận xét. // kết thúc lớp học class User extends Object { } // end of class
Các tập tin
Các lớp học phải được lưu dưới tên {$class_name}. php
require_once "Database.php"; require_once "My_Other_Class_Name.php";
biến chung
Tất cả các bộ đếm phải được đặt tên là $i. Nếu bạn có nhiều hơn một bộ đếm, hãy sử dụng chữ cái tiếp theo. $j, $k, $l
PascalCased
0Tất cả các biến tạm thời phải được gọi là $temp hoặc $tmp;
PascalCased
1Tên chức năng
Cố gắng sử dụng tên mang tính mô tả nhất có thể, nhưng tránh dùng nhiều từ hoặc tên dài
Nếu bạn có lớp Người dùng và chức năng để xác thực xem việc sử dụng này có hợp lệ hay không, thay vì điều này
PascalCased
2Hoặc thậm chí tệ hơn
foreach [$data as $key => $row] { echo $row['something']; }
0Dùng cái này
foreach [$data as $key => $row] { echo $row['something']; }
1Bởi vì không cần lặp lại từ "Người dùng" vì nó đã có trong tên lớp
tiền tố chức năng
Tất cả các chức năng trả về một số $variable phải được bắt đầu bằng "get"
foreach [$data as $key => $row] { echo $row['something']; }
2Tất cả các hàm đặt biến đối tượng phải có tiền tố là "set"
foreach [$data as $key => $row] { echo $row['something']; }
3hằng số
Hằng số toàn cầu
Tất cả các hằng số toàn cầu [hằng số được sử dụng ở mọi nơi trong ứng dụng, không chỉ một lớp] phải là chữ hoa
foreach [$data as $key => $row] { echo $row['something']; }
4Hằng số lớp
Các hằng số được sử dụng trong một lớp nên được định nghĩa là hằng số lớp, không phải hằng số toàn cầu. Chữ hoa nhưng không có tiền tố và phải được xác định trước bất kỳ biến lớp nào khác
hằng số ma thuật. Hằng số ma thuật là các hằng số được xác định trước trong PHP được sử dụng trên cơ sở sử dụng chúng. Các hằng số này được bắt đầu và kết thúc bằng dấu gạch dưới kép [__]. Các hằng số này được tạo bởi các phần mở rộng khác nhau
cú pháp
$string = __FUNCTION__
Sự miêu tả. Hằng số này được sử dụng để trả về tên hàm hoặc {đóng} cho các hàm ẩn danh
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ừ PascalCased
8
cú pháp
function functionName[] {
mã sẽ đượ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 []
Ví dụ
function writeMsg[] {
echo "Xin chào thế giới. ";
}
Đố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
Ví dụ
function familyName[$fname] {
echo "$fname Refsnes.
";
}
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]
Ví dụ
function familyName[$fname, $year] {
echo "$fname Refsnes. Sinh năm $năm
";
}
FamilyName["Hege", "1975"];
FamilyName["Stale", "1978"];
FamilyName["Kai Jim
?>
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 PascalCased
9, 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 PascalCased
9
Ví dụ
function addNumbers[int $a, int $b] {
return $a + $b;
}
echo addNumbers[5, "5 days"];
// since strict is NOT enabled "5 days" is changed to int[5], and it will return 10
?>
Để chỉ định PascalCased
9, chúng ta cần đặt PascalCased
2. Đ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 PascalCased
9
Ví dụ
function addNumbers[int $a, int $b] {
return $a + $b;
}
echo addNumbers[5, "5 days"];
// since strict is enabled and "5 days" is not an integer, an error will be thrown
?>
Tuyên bố PascalCased
9 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ố
Ví dụ
function 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 PascalCased
5
Ví dụ
hàm tổng[int $x, int $y] {
$z = $x + $y;
return $z;
Khai báo kiểu trả về PHP
PHP 7 cũng hỗ trợ Khai báo kiểu cho câu lệnh PascalCased
5. 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 [ PascalCased
80 ] và kiểu ngay trước dấu ngoặc nhọn mở [ PascalCased
81 ] khi khai báo hàm
Trong ví dụ sau, chúng tôi chỉ định kiểu trả về cho hàm
Ví dụ
hàm addNumbers[float $a, float $b]. float {
return $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
Ví dụ
hàm addNumbers[float $a, float $b]. int {
return [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ử PascalCased
82 được sử dụng