Bạn có thể có một hàm bên trong một hàm trong PHP không?

Hàm PHP là một đoạn mã có thể được sử dụng lại nhiều lần. Nó có thể lấy đầu vào làm danh sách đối số và giá trị trả về. Có hàng nghìn hàm dựng sẵn trong PHP

Trong PHP, chúng ta cũng có thể định nghĩa Hàm có điều kiện, Hàm bên trong Hàm và Hàm đệ quy

Ưu điểm của hàm PHP

Khả năng sử dụng lại mã. Các hàm PHP chỉ được xác định một lần và có thể được gọi nhiều lần, giống như trong các ngôn ngữ lập trình khác

ít mã hơn. Nó tiết kiệm rất nhiều mã vì bạn không cần phải viết logic nhiều lần. Bằng cách sử dụng chức năng, bạn chỉ có thể viết logic một lần và sử dụng lại nó

Dễ hiểu. Các hàm PHP tách logic lập trình. Vì vậy, dễ hiểu luồng ứng dụng hơn vì mọi logic được phân chia dưới dạng các hàm

Hàm do người dùng định nghĩa PHP

Chúng ta có thể khai báo và gọi các hàm do người dùng định nghĩa một cách dễ dàng. Hãy xem cú pháp để khai báo các hàm do người dùng định nghĩa

cú pháp

Ghi chú. Tên hàm chỉ được bắt đầu bằng chữ cái và dấu gạch dưới giống như các nhãn khác trong PHP. Nó không thể bắt đầu bằng số hoặc ký hiệu đặc biệt

Ví dụ hàm PHP

Tập tin. chức năng1. php

đầu ra

Đối số chức năng PHP

Chúng ta có thể truyền thông tin trong hàm PHP thông qua các đối số được phân tách bằng dấu phẩy

PHP hỗ trợ Gọi theo Giá trị [mặc định], Gọi theo Tham chiếu, Giá trị đối số mặc định và danh sách đối số có độ dài thay đổi

Hãy xem ví dụ để truyền một đối số trong hàm PHP

Tập tin. chức năng. php

đầu ra

Hello Sonoo
Hello Vimal
Hello John

Cùng xem ví dụ truyền 2 đối số trong hàm PHP

Tập tin. chức năngg2. php

đầu ra

Hello Sonoo, you are 27 years old
Hello Vimal, you are 29 years old
Hello John, you are 23 years old

Gọi PHP theo tham chiếu

Giá trị được truyền cho hàm không sửa đổi giá trị thực theo mặc định [gọi theo giá trị]. Nhưng chúng ta có thể làm như vậy bằng cách chuyển giá trị làm tham chiếu

Theo mặc định, giá trị được truyền cho hàm được gọi theo giá trị. Để chuyển giá trị dưới dạng tham chiếu, bạn cần sử dụng ký hiệu dấu và [&] trước tên đối số

Hãy xem một ví dụ đơn giản về gọi theo tham chiếu trong PHP

Tập tin. chức năng. php

đầu ra

Hàm PHP. Giá trị đối số mặc định

Chúng ta có thể chỉ định một giá trị đối số mặc định trong hàm. Khi gọi hàm PHP nếu bạn không chỉ định đối số nào thì nó sẽ lấy đối số mặc định. Hãy xem một ví dụ đơn giản về việc sử dụng giá trị đối số mặc định trong hàm PHP

PHP có một bộ sưu tập khổng lồ các hàm nội bộ hoặc tích hợp sẵn mà bạn có thể gọi trực tiếp trong các tập lệnh PHP của mình để thực hiện một tác vụ cụ thể, chẳng hạn như

0, 
1, 
2, v.v.

Vui lòng xem phần tham chiếu PHP để biết danh sách đầy đủ các hàm tích hợp PHP hữu ích

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

Ngoài các hàm có sẵn, PHP còn cho phép bạn tự định nghĩa các hàm của riêng mình. Đó là một cách để tạo các gói mã có thể tái sử dụng để thực hiện các tác vụ cụ thể và có thể được lưu giữ và duy trì dưới dạng chương trình chính riêng biệt. Dưới đây là một số lợi thế của việc sử dụng chức năng

  • Chức năng làm giảm sự lặp lại của mã trong một chương trình — Chức năng cho phép bạn trích xuất khối mã thường được sử dụng thành một thành phần duy nhất. Bây giờ bạn có thể thực hiện cùng một tác vụ bằng cách gọi hàm này ở bất cứ đâu bạn muốn trong tập lệnh của mình mà không phải sao chép và dán lại cùng một khối mã
  • Các chức năng làm cho mã dễ bảo trì hơn nhiều — Vì một chức năng được tạo một lần có thể được sử dụng nhiều lần, do đó, mọi thay đổi được thực hiện bên trong một chức năng sẽ tự động được triển khai ở mọi nơi mà không cần chạm vào một số tệp
  • Hàm giúp loại bỏ lỗi dễ dàng hơn — Khi chương trình được chia nhỏ thành các hàm, nếu có bất kỳ lỗi nào xảy ra, bạn sẽ biết chính xác hàm nào gây ra lỗi và tìm nó ở đâu. Do đó, việc sửa lỗi trở nên dễ dàng hơn rất nhiều
  • Các chức năng có thể được sử dụng lại trong ứng dụng khác — Bởi vì một chức năng được tách biệt khỏi phần còn lại của tập lệnh, thật dễ dàng để sử dụng lại chức năng tương tự trong các ứng dụng khác chỉ bằng cách bao gồm tệp php chứa các chức năng đó

Phần sau đây sẽ cho bạn thấy bạn có thể định nghĩa hàm của riêng mình trong PHP dễ dàng như thế nào

Tạo và gọi hàm

Cú pháp cơ bản để tạo một chức năng tùy chỉnh có thể được cung cấp với

Phần khai báo của hàm do người dùng định nghĩa bắt đầu bằng từ

3, theo sau là tên của hàm bạn muốn tạo, sau đó là dấu ngoặc đơn i. e. 
4 và cuối cùng đặt mã chức năng của bạn giữa các dấu ngoặc nhọn 
5

Đây là một ví dụ đơn giản về hàm do người dùng xác định, hiển thị ngày hôm nay

Ghi chú. Tên hàm phải bắt đầu bằng một chữ cái hoặc ký tự gạch dưới không phải bằng một số, tùy ý theo sau bởi các chữ cái, số hoặc ký tự gạch dưới. Tên hàm không phân biệt chữ hoa chữ thường

Các hàm có tham số

Bạn có thể chỉ định các tham số khi bạn xác định chức năng của mình để chấp nhận các giá trị đầu vào trong thời gian chạy. Các tham số hoạt động giống như các biến giữ chỗ trong một hàm;

Bạn có thể xác định bao nhiêu tham số tùy thích. Tuy nhiên, đối với mỗi tham số bạn chỉ định, một đối số tương ứng cần được chuyển đến hàm khi nó được gọi

Hàm

6 trong ví dụ sau lấy hai giá trị số nguyên làm đối số, chỉ cần cộng chúng lại với nhau rồi hiển thị kết quả trên trình duyệt

Đầu ra của đoạn mã trên sẽ là

Tổng của hai số 10 và 20 là. 30

Mẹo. Đối số là một giá trị mà bạn chuyển đến hàm và tham số là biến trong hàm nhận đối số. Tuy nhiên, trong cách sử dụng thông thường, các thuật ngữ này có thể hoán đổi cho nhau. e. một đối số là một tham số là một đối số

Các hàm có tham số tùy chọn và giá trị mặc định

Bạn cũng có thể tạo hàm với tham số tùy chọn — chỉ cần chèn tên tham số, theo sau là dấu bằng [

7], theo sau là giá trị mặc định, như thế này

Hello, world!";
}
 
// Calling function
customFont["Arial", 2];
customFont["Times", 3];
customFont["Courier"];
?>

Như bạn có thể thấy lệnh gọi thứ ba đến

8 không bao gồm đối số thứ hai. Điều này khiến công cụ PHP sử dụng giá trị mặc định cho tham số 
9 là 1. 5

Trả về các giá trị từ một hàm

Một hàm có thể trả lại một giá trị cho tập lệnh đã gọi hàm đó bằng cách sử dụng câu lệnh return. Giá trị có thể thuộc bất kỳ kiểu nào, kể cả mảng và đối tượng

Một hàm không thể trả về nhiều giá trị. Tuy nhiên, bạn có thể thu được kết quả tương tự bằng cách trả về một mảng, như minh họa trong ví dụ sau

Truyền đối số cho hàm bằng cách tham chiếu

Trong PHP có hai cách bạn có thể truyền đối số cho một hàm. theo giá trị và theo tham chiếu. Theo mặc định, các đối số của hàm được truyền theo giá trị để nếu giá trị của đối số bên trong hàm bị thay đổi, nó sẽ không bị ảnh hưởng bên ngoài hàm. Tuy nhiên, để cho phép một hàm sửa đổi các đối số của nó, chúng phải được chuyển qua tham chiếu

Việc truyền đối số bằng tham chiếu được thực hiện bằng cách thêm dấu và [

Hello, world!";
}
 
// Calling function
customFont["Arial", 2];
customFont["Times", 3];
customFont["Courier"];
?>
0] vào tên đối số trong định nghĩa hàm, như minh họa trong ví dụ bên dưới

Hiểu phạm vi biến

Tuy nhiên, bạn có thể khai báo các biến ở bất kỳ đâu trong tập lệnh PHP. Tuy nhiên, vị trí của khai báo xác định mức độ hiển thị của một biến trong chương trình PHP i. e. nơi biến có thể được sử dụng hoặc truy cập. Khả năng truy cập này được gọi là phạm vi biến

Theo mặc định, các biến được khai báo trong một hàm là cục bộ và chúng không thể được xem hoặc thao tác từ bên ngoài hàm đó, như minh họa trong ví dụ bên dưới

Tương tự, nếu bạn cố gắng truy cập hoặc nhập một biến bên ngoài vào bên trong hàm, bạn sẽ gặp lỗi biến không xác định, như minh họa trong ví dụ sau

Như bạn có thể thấy trong các ví dụ trên, biến được khai báo bên trong hàm không thể truy cập được từ bên ngoài, tương tự như vậy, biến được khai báo bên ngoài hàm không thể truy cập được bên trong hàm. Sự tách biệt này làm giảm khả năng các biến trong một hàm bị ảnh hưởng bởi các biến trong chương trình chính

Mẹo. Có thể sử dụng lại cùng tên cho một biến trong các hàm khác nhau, vì các biến cục bộ chỉ được nhận dạng bởi hàm mà chúng được khai báo

Từ khóa toàn cầu

Có thể xảy ra trường hợp bạn cần nhập một biến từ chương trình chính vào một hàm hoặc ngược lại. Trong những trường hợp như vậy, bạn có thể sử dụng từ khóa

Hello, world!";
}
 
// Calling function
customFont["Arial", 2];
customFont["Times", 3];
customFont["Courier"];
?>
1 trước các biến bên trong hàm. Từ khóa này biến biến thành biến toàn cục, làm cho nó có thể nhìn thấy hoặc truy cập được cả bên trong và bên ngoài hàm, như minh họa trong ví dụ bên dưới

Bạn sẽ tìm hiểu thêm về khả năng hiển thị và kiểm soát truy cập trong chương Các lớp và đối tượng PHP

Tạo hàm đệ quy

Hàm đệ quy là hàm gọi đi gọi lại chính nó cho đến khi thỏa mãn điều kiện. Các hàm đệ quy thường được sử dụng để giải quyết các phép tính toán học phức tạp hoặc để xử lý các cấu trúc lồng sâu e. g. , in tất cả các phần tử của một mảng được lồng sâu

Ví dụ sau minh họa cách thức hoạt động của một hàm đệ quy

 $count, 'values' => $items];
}
 
// Define nested array
$species = array[
    "birds" => array[
        "Eagle",
        "Parrot",
        "Swan"
    ],
    "mammals" => array[
        "Human",
        "cat" => array[
            "Lion",
            "Tiger",
            "Jaguar"
        ],
        "Elephant",
        "Monkey"
    ],
    "reptiles" => array[
        "snake" => array[
            "Cobra" => array[
                "King Cobra",
                "Egyptian cobra"
            ],
            "Viper",
            "Anaconda"
        ],
        "Crocodile",
        "Dinosaur" => array[
            "T-rex",
            "Alamosaurus"
        ]
    ]
];
 
// Count and print values in nested array
$result = printValues[$species];
echo $result['total'] . ' value[s] found: ';
echo implode[', ', $result['values']];
?>

Ghi chú. Hãy cẩn thận khi tạo các hàm đệ quy, bởi vì nếu mã được viết không đúng cách, nó có thể dẫn đến một vòng lặp vô hạn của lệnh gọi hàm

Chúng ta có thể có chức năng bên trong chức năng trong PHP không?

Tất cả các hàm và lớp trong PHP đều có phạm vi toàn cục - chúng có thể được gọi bên ngoài một hàm ngay cả khi chúng được định nghĩa bên trong và ngược lại . PHP không hỗ trợ nạp chồng hàm, cũng như không thể xác định lại hoặc xác định lại các hàm đã khai báo trước đó.

Một chức năng có thể nằm trong một chức năng?

Hàm lồng nhau là một hàm được chứa hoàn toàn trong hàm cha. Bất kỳ chức năng nào trong tệp chương trình đều có thể bao gồm chức năng lồng nhau . Sự khác biệt chính giữa các hàm lồng nhau và các loại hàm khác là chúng có thể truy cập và sửa đổi các biến được xác định trong hàm cha của chúng.

Làm cách nào để gọi một hàm trong một hàm khác trong PHP?

$Tid = gửi[$myStreet, $myCity, $myPostcode]; . MÃ ĐỂ LÀM ĐIỀU GÌ SỬ DỤNG CÁC BIẾN $a, $b, $c. }

Chủ Đề