Tạo hàm trong php

Tạo hàm trong php là để định nghĩa ra các chức năng mới trong website, để rồi bạn gọi chúng mỗi khi cần dùng đến.

Dù đã có rất nhiều hàm có sẵn trong php nhưng do nhu cầu lập trình, bạn vẫn phải tạo thêm hàm mới để dùng. Mỗi hàm có tên và các tham số. Mỗi lần bạn gọi tên hàm thì các lệnh trong hàm sẽ thực hiện.

Tạo hàm mới trong php

function tenham (thamso1, thamso2, …, thamson) {
    //Code thực hiện trong hàm
    return giátrị;
}

Trong cú pháp trên, lệnh return giátrị có thể bỏ qua nếu bạn không cần trả về giá tri nào khi gọi hàm.

Gọi hàm php đã tạo

Với hàm php đã tạo thì bạn gọi tên và truyền tham số như những hàm php có sẵn

<?php
tenham(thamso1, thamso2,...);
?>

Ví dụ tạo hàm php và gọi hàm

Viết hàm nhận 1 số nguyên từ 0 đến 6, trả về tên thứ trong tuần (0 là chủ nhật, 1 là thứ 2 .. 6 là thứ 7)

<?php
function tenngaytrongtuan($n){
   $kq= "";
   switch ($n) {
       case 0: $kq="Chủ nhật"; break; 
       case 1: $kq="Thứ hai"; break; 
       case 2: $kq="Thứ ba"; break; 
       case 3: $kq="Thứ tư"; break; 
       case 4: $kq="Thứ năm"; break; 
       case 5: $kq="Thứ sáu"; break; 
       case 6: $kq="Thứ bảy"; break;         
       default: $kq = "Không hợp lệ";
   }
   return $kq;
}
?>

<hr>
<?php 
  $thu = date("w");
  echo "Hôm nay là ngày : <b>", tenngaytrongtuan($thu) , "</b>";
?>

Giá trị mặc định của tham số

Khi định nghĩa hàm, bạn có thể chỉ định giá trị mặc định cho tham số, giá trị mặc định sẽ được dùng khi bạn gọi hàm mà không truyền tham số. Ví dụ:

<?php
function hienloichao($ten="Quý khách"){
   return "<span class='chao'> Xin chào  <em>" . $ten . "</em> </span>" ;
}
?>

<p> <?php echo hienloichao();?> </p>
<p> <?php echo hienloichao("Tèo");?> </p>

Truyền tham số cho hàm dạng tham chiếu

Truyền tham chiếu cho hàm dạng tham chiiếu nghĩa là trong định của hàm, bạn thêm dấu & vào trước tên tham số.

Tham số nào được truyền như tham chiếu thì khi bạn thay đổi giá trị trong hàm , nó sẽ ảnh hưởng đến bên ngoài hàm, nơi gốc mà mà bạn đã định nghĩa biến. Ví dụ:

<?php
function tang3(&$x) {
  $x += 3;
}

$x = 2;
echo "<p>x = ", $x, "</p>
  

"; tang3($x); echo "<p>x = ", $x ,"<p>"; ?>

Phạm vi của biến trong php

Trong php, phạm vi của biến là vùng mà biến có thể được truy cập đến. Có hai loại biến là biến cục bộ và biến toàn cục.

Biến cục bộ là biến được định nghĩa bên trong hàm. biến này chỉ có phạm vi bên trong hàm, ngoài hàm thì biến đó không dùng được.

Biến toàn cục được định nghĩa ngoài hàm, có phạm vi bên ngoài các hàm và không có tác dụng bên trong các hàm (mặc định). Do đó bên trong một hàm mà bạn muốn dùng biến toàn cục phải dùng đến khai báo global. Ví du:

<?php    
   function hientuoi(){
      $tuoi=19; //biến cục bộ
      echo "Tuổi = ", $tuoi; 
   }

   hientuoi();  
   echo "Tuoi = ", $tuoi ; // không hiện được biến $tuoi trong hàm hientuoi 
?>
<?php
   $tuoi=19; //biến toàn cục
   function hientuoi(){
      echo "Tuổi = ", $tuoi; //$tuoi là biến nội tại của hàm, giá trị NULL
   }

   hientuoi();  //không hiện được biến $tuoi
?>
<?php
   $tuoi=19; //biến toàn cục
   function hientuoi(){
      global $tuoi;
      echo "Tuổi = ", $tuoi; //$tuoi là biến toàn cục 
   }

   hientuoi();  //hiện được biến $tuoi
?>

Có thể truy cập biến toàn cục trong hàm bằng cách dùng $GLOBALS

<?php
   $tuoi=19; //biến toàn cục
   function hientuoi(){      
      echo "Tuổi = ", $GLOBALS['tuoi']; // truy xuat $tuoi ở ngoài
   }
   hientuoi();  //hiện được biến $tuoi
?>

Thực tập tạo hàm php

Sau đây là một số thực tập tạo hàm php, mời bạn thực hiện nhé:

Tạo hàm php để hiện thời điểm hiện hành

<?php 
function LucNayLa() { // Chuyển giờ hệ thống sang tiếng Việt
   $anh = array("Mon","Tue","Wed","Thu","Fri","Sat","Sun","am","pm",":"); 
   $viet = array ("Thứ hai","Thứ ba","Thứ tư","Thứ năm","Thứ sáu","Thứ bảy", "Chủ nhật", " phút, sáng", " phút, chiều", " giờ " ); 
   $timenow = gmdate("D, d/m/Y - g:i a.", time() + 7*3600); 
   $t = str_replace( $anh, $viet, $timenow); 
   return $t; 
} 
?>

Gọi hàm hiện thời điểm hiện hành

<?php 
echo LucNayLa(); //     Thứ hai, 09/11/2020 - 9 giờ 22 phút, sáng.
?>

Tạo hàm php để bỏ dấu tiếng việt

function stripUnicode($str){
  if(!$str) return false;
  $unicode = array(
      'a'=>'á|à|ả|ã|ạ|ă|ắ|ằ|ẳ|ẵ|ặ|â|ấ|ầ|ẩ|ẫ|ậ',
      'A'=>'Á|À|Ả|Ã|Ạ|Ă|Ắ|Ằ|Ẳ|Ẵ|Ặ|Â|Ấ|Ầ|Ẩ|Ẫ|Ậ',
      'd'=>'đ', 'D'=>'Đ',
      'e'=>'é|è|ẻ|ẽ|ẹ|ê|ế|ề|ể|ễ|ệ',
      'E'=>'É|È|Ẻ|Ẽ|Ẹ|Ê|Ế|Ề|Ể|Ễ|Ệ',
      'i'=>'í|ì|ỉ|ĩ|ị', 'I'=>'Í|Ì|Ỉ|Ĩ|Ị',
      'o'=>'ó|ò|ỏ|õ|ọ|ô|ố|ồ|ổ|ỗ|ộ|ơ|ớ|ờ|ở|ỡ|ợ',
      'O'=>'Ó|Ò|Ỏ|Õ|Ọ|Ô|Ố|Ồ|Ổ|Ỗ|Ộ|Ơ|Ớ|Ờ|Ở|Ỡ|Ợ',
      'u'=>'ú|ù|ủ|ũ|ụ|ư|ứ|ừ|ử|ữ|ự',
      'U'=>'Ú|Ù|Ủ|Ũ|Ụ|Ư|Ứ|Ừ|Ử|Ữ|Ự',
      'y'=>'ý|ỳ|ỷ|ỹ|ỵ',
      'Y'=>'Ý|Ỳ|Ỷ|Ỹ|Ỵ'
  );
  foreach($unicode as $khongdau=>$codau) {
      $arr=explode("|",$codau);
      $str = str_replace($arr,$khongdau,$str);
  }
  return $str;
}

Gọi hàm bỏ dấu tiếng việt

<?php 
echo stripUnicode("chịu khó mới giỏi"); //chiu kho moi gioi
?>

Tạo hàm slug trong php

Bạn thử tạo 1 hàm có tên là slug nhận vào 1 tham số chuỗi và thực hiện các việc sau:

  • Cắt bỏ dấu tiếng việt trong chuỗi
  • Xóa các ký tự đặc biệt trong chuỗi như % $ * & ? ! # @
  • Cắt bỏ khoảng trắng ở đầu và cuối
  • Cắt các khoảng trắng thừa giữa các từ để giữa các từ còn đúng 1 khoảng trắng
  • Thay thế các khoảng trắng giữa các từ thành dấu –
<?php 
echo $str =slug("    ?   $  người     *  suốt   @ đời     gặp    may    ");  
//nguoi-suot-doi-gap-may
?>

Tạo hàm php để tính tuổi trong php

Bạn thử thực hiện một hàm có tên tinhtuoi, hàm sẽ nhận tham số ngày sinh có dạng dd/mm/yyy và trả về giá trị tuổi


Bạn xem thêm các bài liên quan nhé: