Bạn có thể gọi một hàm trong một hàm PHP không?

You can do some kind of overloading functions in PHP using "function_exists".

Let's suppose you want a script to call plugins that are php files and you want the plugins to "override" behaviours that if not overriden are used by default.

You might for example write a "mySQL table viewer" which displays a table and it "opens a table", "dumps the header", "dumps row-by-row" and then "closes the table".

Let's suppose you want a plugin for "Stocks" which prints negative stocks in red, so you want to override the "dumping row-by-row" to do that behaviour. Instead you do not want to have all the "default behaviour" repeated in the plugin.

You may then do the following:

1) Define a default plugin (ex: "default.php"

2) Write all your functions in default.php to open, dump and close, but add them a suffix:

open_table_default()
dump_header_default()
dump_row_default()
close_table_default()

________số 8

plugincall("open_table");

Let's suppose you want a script to call plugins that are php files and you want the plugins to "override" behaviours that if not overriden are used by default.0

Let's suppose you want a script to call plugins that are php files and you want the plugins to "override" behaviours that if not overriden are used by default.1

Let's suppose you want a script to call plugins that are php files and you want the plugins to "override" behaviours that if not overriden are used by default.2

Let's suppose you want a script to call plugins that are php files and you want the plugins to "override" behaviours that if not overriden are used by default.3

Let's suppose you want a script to call plugins that are php files and you want the plugins to "override" behaviours that if not overriden are used by default.4

Let's suppose you want a script to call plugins that are php files and you want the plugins to "override" behaviours that if not overriden are used by default.5

PHP có hàng nghìn hàm dựng sẵn. Mỗi chức năng đó được tập trung để thực hiện một nhiệm vụ cụ thể. Chúng tôi đã thảo luận về một số trong số họ

  • echo() - để xuất một chuỗi
  • định nghĩa () - để xác định một hằng số
  • var_dump() - để kết xuất dữ liệu của một biến

Bạn sẽ từng bước tìm hiểu về các chức năng tích hợp sẵn khác trong hướng dẫn này

Các hàm do người dùng định nghĩa trong PHP

Khai báo hàm bắt đầu bằng từ khóa function. Sau đó, tên hàm và đối số

Đặt tên PHP cho các hàm do người dùng định nghĩa

Cách đặt tên hàm gần giống như cách đặt tên biến ngoại trừ dấu $ ở đầu. Các chức năng không có dấu $

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 trong 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ừ Let's suppose you want a script to call plugins that are php files and you want the plugins to "override" behaviours that if not overriden are used by default.6

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 ()

Thí dụ

function writeMsg() {
  echo "Xin chào thế giới. ";
}

writeMsg();
?>

Tự mình thử »



Đố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ụ

function familyName($fname) {
  echo "$fname Refsnes.
";
}

FamilyName("Jani");
FamilyName("Hege");
FamilyName("Stale");
familyName("Kai Jim");
familyName("Borge");
?>

Tự mình thử »

Ví dụ sau có một hàm với hai đối số ($fname và $year)

Thí dụ

function familyName($fname, $year) {
  echo "$fname Refsnes. Sinh năm $năm
";
}

FamilyName("Hege", "1975");
FamilyName("Stale", "1978");
FamilyName("Kai Jim
?>

Tự mình thử »


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 Let's suppose you want a script to call plugins that are php files and you want the plugins to "override" behaviours that if not overriden are used by default.7, 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 Let's suppose you want a script to call plugins that are php files and you want the plugins to "override" behaviours that if not overriden are used by default.7

Thí 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
?>

Tự mình thử »

Để chỉ định Let's suppose you want a script to call plugins that are php files and you want the plugins to "override" behaviours that if not overriden are used by default.7, chúng ta cần đặt You might for example write a "mySQL table viewer" which displays a table and it "opens a table", "dumps the header", "dumps row-by-row" and then "closes the table".0. Đ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 Let's suppose you want a script to call plugins that are php files and you want the plugins to "override" behaviours that if not overriden are used by default.7

Thí 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
?>

Tự mình thử »

Tuyên bố Let's suppose you want a script to call plugins that are php files and you want the plugins to "override" behaviours that if not overriden are used by default.7 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ụ

function setHeight(int $minheight = 50) {
  echo "Chiều cao là. $minheight
";
}

setHeight(350);
setHeight();
setHeight(135);
setHeight(80);
?>

Tự mình thử »


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 You might for example write a "mySQL table viewer" which displays a table and it "opens a table", "dumps the header", "dumps row-by-row" and then "closes the table".3

Thí dụ

hàm tổng(int $x, int $y) {
  $z = $x + $y;
  return $z;  return $z;  return $z;  return $z;  return $z;  return $z;  return $z;  return $z;  return $z;  return $z;  return $z;  return $z;  return $z;  return $z;  return $z;  return $z;  return $z;  return $z;  return $z;  return $z;  return $z;  return $z;  return $z;  return $z;  return $z;  return $z;  return $z;  return $z;  return $z;  return $z;  return $z;
}

echo "5 + 10 = ". tổng(5, 10). "
";
echo "7 + 13 = ". tổng(7, 13). "
";
echo "2 + 4 = ". tổng(2, 4);
?>

Tự mình thử »


Khai báo kiểu trả về PHP

PHP 7 cũng hỗ trợ Khai báo kiểu cho câu lệnh You might for example write a "mySQL table viewer" which displays a table and it "opens a table", "dumps the header", "dumps row-by-row" and then "closes the table".3. 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 ( Let's suppose you want a script to call plugins that are php files and you want the plugins to "override" behaviours that if not overriden are used by default.60 ) và kiểu ngay trước dấu ngoặc nhọn mở ( Let's suppose you want a script to call plugins that are php files and you want the plugins to "override" behaviours that if not overriden are used by default.61 ) 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). float {
  return $a + $b;
}
echo addNumbers(1. 2, 5. 2);
?>

Tự mình thử »

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 {
  return (int)($a + $b);
}
echo addNumbers(1. 2, 5. 2);
?>

Tự mình thử »


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ử Let's suppose you want a script to call plugins that are php files and you want the plugins to "override" behaviours that if not overriden are used by default.62 được sử dụng

Chúng ta có thể gọi hàm bên trong hàm trong PHP không?

Tôi có thể gọi hàm bên trong một hàm không?

Việc gọi một hàm từ bên trong chính nó được gọi là đệ quy và câu trả lời đơn giản là có.

Bạn có thể gọi các chức năng trong các chức năng khác không?

Điều quan trọng là phải hiểu rằng mỗi hàm chúng ta viết có thể được sử dụng và gọi từ các hàm khác mà chúng ta viết. Đây là một trong những cách quan trọng nhất mà các lập trình viên máy tính xử lý một vấn đề lớn và chia nhỏ nó thành một nhóm các vấn đề nhỏ hơn.