------
Phần 57.
Hàm trong PHP
Đây là clip số 17: hàm trong PHP
Hàm là tập hợp các câu lệnh được xây dựng để thực hiện một
chức năng cụ thể. Khối lệnh này chỉ cần viết một lần, và có thể sử dụng lại
nhiều lần trong chương trình.
Có hai loại hàm trong PHP: hàm do PHP cung cấp sẵn và hàm do
người lập trình tự định nghĩa. Ở phần này sẽ học về hàm tự định nghĩa.
Ví dụ sau đây là định nghĩa và gọi hàm createBox(),
<?php
function
createBox () { //định nghĩa hàm
echo
'<div style="width: 200px; height: 300px; border: 1px solid
#0DD;">';
echo
'<h1>Hàm trong PHP</h1>';
echo
'</div>';
}
createBox();
//gọi hàm
createBox();
//gọi hàm
?>
Để ý, hàm createBox ở trên không có tham số, và cũng không
trả về giá trị.
Giờ sẽ thay đổi hàm createBox() để cho nó trả về một giá
trị, ví dụ,
<?php
function
createBox () {
$value
= '<div style="width: 200px; height: 300px; border: 1px solid
#0DD;">';
$value
.= '<h1>Hàm trong PHP</h1>';
$value
.= '</div>';
return
$value; //trả về giá trị
}
$result =
createBox();
echo $result;
?>
Sau đây là ví dụ hàm trả về giá trị kiểu true/false,
function checkNumber() {
$value
= 14;
if($value
% 2 == 0) { return true; }
else
{ return false; }
}
$result
= checkNumber();
if($result
== true) {
echo
'Số chẵn';
}else
{echo 'Số lẻ'; }
Đây là clip số 18: hàm trong PHP (tiếp theo)
Truyền một tham số cho hàm, ví dụ:
function checkNumber($value){
if($value
% 2 == 0) { return true; }
else
{ return false; }
}
Truyền nhiều tham số cho hàm, ví dụ:
function checkNumber($value1, $value2){}
Để tránh lỗi khi tham số không có giá trị, nên gán giá trị
mặc định cho tham số, ví dụ:
function checkNumber($value1 = 0,
$value2 = 0){}
Biến cục bộ (local): là biến được khai báo ở trong hàm, và
chỉ có thể được truy cập ở trong hàm đó. Biến cục bộ sẽ bị xóa sau khi hàm đó
thực thi xong.
Biến toàn cục (global): là biến được khai báo bên ngoài tất
cả các hàm. Được sử dụng tại mọi vị trí trong chương trình. Tuy nhiên, nếu muốn
truy cập biến toàn cục trong một hàm, thì cần phải khai báo lại bằng từ khóa
global. Ví dụ,
<?php
$globalVar
= 10;
function
testFunction(){
global
$globalVar;
echo
$globalVar;
}
testFunction();
?>
Hoặc để truy cập biến global trong một hàm, có cách khác là
sử dụng biến $GLOBALS của PHP. Ví dụ,
<?php
$globalVar
= 10;
function
testFunction(){
echo
$GLOBALS['globalVar'];
}
testFunction();
?>
Phân biệt truyền tham biến và truyền tham trị,
- Truyền tham biến: sau khi kết thúc hàm, giá trị của biến
không bị thay đổi. Hiểu nôm na là làm việc trên bản sao của biến.
- Truyền tham trị: việc thay đổi giá trị của biến ở trong
hàm sẽ làm thay đổi đến giá trị của biến. Hiểu nôm na là làm việc trên chính
biến đó.
Ví dụ cú pháp của truyền tham trị: function
testFunction($n1){}
Ví dụ cú pháp của truyền tham biến: function testFunction(&$n1){}
Ví dụ minh họa về truyền tham biến, tham trị,
<?php
$n1
= 2;
$n2
= 3;
function
testFunction($n1, &$n2){
$n1
= $n1*2;
$n2
= $n2*2;
}
testFunction($n1,
$n2);
echo
'$n1 = ' . $n1 . '<br>';
echo
'$n2 = ' . $n2;
?>
Đây là clip số 19: hàm trong PHP (tiếp theo)
Lệnh include và require cùng có chức năng là triệu gọi mã
nguồn từ một tập tin khác vào tập tin hiện tại. Tuy nhiên, điểm khác nhau giữa
hai lệnh này là, trong quá trình triệu gọi, nếu gặp lỗi thì:
- Lệnh include: sẽ tiếp tục thực hiện chương trình hiện tại.
- Lệnh require: sẽ ngừng thực hiện chương trình hiện tại.
Lệnh include_once: nếu đã có lệnh triệu gọi, với tên tập tin
trùng với tên tập tin trong lệnh này, thì lệnh này sẽ được bỏ qua.
Lệnh require_once: nếu đã có lệnh triệu gọi, với tên tập tin
trùng với tên tập tin trong lệnh này, thì lệnh này sẽ được bỏ qua.
Ví dụ về lệnh include và require: include (“fileName.php”);
require(“fileName.php”); hoặc include “fileName.php”; require “fileName.php”;
-----------
Cập nhật [8/9/2020]
-----------