Please enable JavaScript.
Coggle requires JavaScript to display documents.
Bài 4: NGÔN NGỮ LẬP TRÌNH PHP (Các hàm chuỗi (So sánh chuỗi_ có phân biệt…
Bài 4: NGÔN NGỮ LẬP TRÌNH PHP
Quy ước
Code PHP được đặt trong các cặp thẻ sau:<?php ?>, <? ?>, <script langguage="php"></script>
Các lệnh cách nhau bởi dấu ;
Ghi chú trong PHP:
Dùng //ghi chú
Hoặc /
ghi chú
/
Biến
Khái niệm
Biến là một ô nhớ trong bộ nhớ chính giúp
biểu diễn thông tin thực tế trong chương trình
$n=8
Khai báo và gán giá trị cho biến
Khai báo biến:
Cú pháp: $tên_biến
Ví dụ: $tong
Quy tắc đặt tên cho biến
Tên biến phải bắt đầu bằng ký tự $, theo sau là 1 ký
tự hoặc dấu
, tiếp đó là ký tự, ký số hoặc dấu
Nên khởi tạo giá trị ban đầu cho biến
Tên biến không trùng với tên hàm
Biến không nên bắt đầu bằng ký số
Lưu ý:
Tên biến có phân biệt chữ HOA – chữ thường
Ví dụ: biến $a và biến $A là hai biến khác
nhau
Gán giá trị cho biến
Gán giá trị trực tiếp
Cú pháp: $tên_biến = <giá_trị>;
Gán giá trị của biến khác cho biến
Cú pháp: $tên_biến = $tên_biến_muốn_lấy_giá_trị
Phạm vi hoạt động của biến
Kiểu dữ liệu
Kiểu dữ liệu – mô tả
Boolean: chỉ có một trong 2 giá trị là TRUE và
FALSE
<?php
$ket_qua=True;
?>
Integer: Kiểu số nguyên
Giá trị có thể là số trong hệ thập phân, thập lục
phân và bát phân.
Float / double: Kiểu dữ liệu số thực.
String: Kiểu dữ liệu chuỗi, ký tự. Trong đó, mỗi
ký tự chiếm 1 byte.
Mỗi chuỗi có thể chứa một hay nhiều ký tự
thuộc 256 ký tự khác nhau.
Chuỗi không có giới hạn về kích thước
Array: Kiểu dữ liệu mảng các phần tử
Object: Kiểu dữ liệu là đối tượng của một lớp
Chuyển đổi kiểu dữ liệu
Trong quá trình tính toán, kiểu dữ liệu cũ của biến có
thể không còn phù hợp nữa (kết quả tính toán vượt
khỏi phạm vi của kiểu dữ liệu cũ) => chuyển đổi kiểu
dữ liệu
Cách thực hiện: ghi tên kiểu dữ liệu mà biến muốn
chuyển đổi vào phía trước biến.
Hằng
Khai báo
Khái niệm: Hằng là một giá trị không thể chỉnh
sửa được trong quá trình thực hiện chương
trình.
Quy tắc đặt tên hằng cũng giống như quy tắc
đặt tên biến
Dùng hàm define() để định nghĩa, nó không bị
thay đổi
Chỉ có các kiểu dữ liệu boolean, integer, float,
string mới có thể chứa các hằng.
Cú pháp: define(“TÊN_HẰNG”, giá_trị);
Ví dụ: Khai báo hằng số PI có giá trị là 3.14
<?php
define("PI",3.14);
?>
Sử dụng
Dùng tên hằng mỗi khi muốn sử dụng
Tham chiếu
Khái niệm
Trong PHP tham chiếu có nghĩa là lấy cùng một
giá trị bằng nhiều tên biến khác nhau.
Ký hiệu tham chiếu: &
Cách thức làm việc của tham chiếu
Tham chiếu trong PHP cho phép tạo ra hai hay
nhiều biến có cùng một nội dung
<?php
$a=10;
$b=&$a;
echo $a; ->10
echo $b; ->10
?>
Các toán tử
Toán tử số học
/ %
Khi có nhiều biểu thức tính toán thì nên đưa
chúng vào cặp ngoặc ()
Toán tử nối chuỗi
Sử dụng toán tử “.” để nối các chuỗi lại với nhau
Kết quả khi sử dụng toán tử nối chuỗi có kết quả
là kiểu chuỗi
Toán tử gán kết hợp
Toán tử +=
Sử dụng: $a+=$b; $a=$a+1;
<?php
$a=7;
$a++; ->8
?>
Toán tử -=
Sử dụng: $a-=$b; $a=$a-$b;
<?php
$a=7;
$a-=1; ->6
?>
Toán tử --
Sử dụng: $a--; $a=$a-1;
<?php
$a=7;
$a--; ->6
?>
Toán tử *=
Sử dụng: $a
=$b; $a=$a
$b;
<?php
$a=7;
$a*=2; ->14
?>
Toán tử %=
Sử dụng: $a%=$b; $a=$a%$b;
<?php
$a=7;
$a%=2; ->1
?>
Toán tử .=
Sử dụng: $a.=$b; $a=$a.$b;
<?php
$chuoi1="abc";
$chuoi2="def";
$chuoi1.=$chuoi2;->abcdef
?>
Toán tử so sánh
Toán tử ==
Thực hiện phép so sánh bằng
<?php
$a = $_POST['a'];
$b = $_POST['b'];
$kq="";
if($a==$b)
$kq="a bằng b";
?>
Toán tử ===
Thực hiện phép so sánh bằng với các đối tượng
có cùng kiểu dữ liệu
<?php
$a = $_POST['a'];
$b = $_POST['b'];
$kq = "";
if($a===$b)
$kq = "a bằng b và có cùng kiểu dữ liệu";
?>
Toán tử !=, <>
Thực hiện phép so sánh
<?php
$a = $_POST['a'];
$b = $_POST['b'];
$kq = "";
if($a<>$b)
$kq = "a khác b";
?>
Toán tử >, >=
Thực hiện phép so sánh lớn hơn, lớn hơn hoặc
bằng
<?php
$a = $_POST['a'];
$b = $_POST['b'];
$kq = "";
if($a>$b)
$kq = "a lớn hơn b";
?>
Toán tử <, <=
Thực hiện phép so sánh nhỏ hơn, nhỏ hơn hoặc
bằng
<?php
$a = $_POST['a'];
$b = $_POST['b'];
$kq = "";
if($a<$b)
$kq = "a nhỏ hơn b";
?>
Toán tử luận lý
Toán tử !
Toán tử phủ định
<?php
$a = 2;
$b = 1;
if(!($a>$b))
echo "$a không lớn hơn $b";
else
echo "$a lớn hơn $b";
?>
Toán tử AND, &&
Ý nghĩa: Đúng nếu cả 2 biểu thức có giá trị đúng
<?php
$a = $_POST['a'];
$b = $_POST['b'];
if($a>0 && $b>0)
echo "$a và $b lớn hơn 0";
?>
Toán tử OR, ||
Ý nghĩa: Đúng khi một trong hai biểu thức có giá
trị TRUE, hoặc cả hai cùng TRUE
<?php
$a = $_POST['a'];
$b = $_POST['b'];
if($a>0 || $b>0)
echo "Có ít nhất một giá trị dương";
?>
Cấu trúc điều khiển
Cấu trúc rẽ nhánh: IF
Dạng 1: if
Cú pháp:
If(điều kiện){
khối lệnh
}
Ý nghĩa: Nếu điều kiện đúng thì thực hiện khối lệnh
Điều kiện là một biểu thức logic trả về đúng (TRUE)
hoặc sai (FALSE)
Dạng 2: if … else
Cú pháp:
if(điều kiện){
khối lệnh 1
}else{
khối lệnh 2
}
Ý nghĩa: Nếu điều kiện đúng thì thực hiện khối lệnh
Ngược lại thì thực hiện khối lệnh 2
Điều kiện là một biểu thức logic trả về đúng (TRUE)
hoặc sai (FALSE)
Cấu trúc if có thể lồng nhau
Toán tử ?:
Cú pháp:
(điều kiện)?<kết quả khi điều kiện đúng>:<kết quả khi điều kiện sai>
Ý nghĩa: dùng để thay thế cho cấu trúc điều khiển
if…else với một câu lệnh bên trong.
Có thể lồng nhiều toán tử ?: với nhau
Dạng 3: if … elseif … else
Cú pháp:
If(điều kiện 1){khối lệnh 1}
elseif(điều kiện 2){khối lệnh 2}
…
else{
khối lệnh khi không thỏa các điều kiện trên
}
Ý nghĩa: Nếu điều kiện 1 đúng thì thực hiện khối
lệnh 1
Ngược lại điều kiện 2 đúng thì thực hiện khối lệnh 2
…
Ngược lại thì thực hiện khối lệnh khi không thỏa các
điều kiện trên.
Điều kiện là một biểu thức logic trả về đúng (TRUE)
hoặc sai (FALSE)
Cấu trúc chọn lựa: switch
Cấu trúc switch cũng tương tự cấu trúc if, nhưng
trong mỗi trường hợp của switch, biểu thức điều
kiện là so sánh bằng một biến với các giá trị.
Dạng 1: mỗi trường hợp một cách xử lý khác nhau
Cú pháp:
switch(biến điều kiện){
case giá trị 1:
khối lệnh 1;
break;
case giá trị 2:
khối lệnh 2;
break;
...
[default: khối lệnh khi không thảo tất cả các case trên]
}
Xem xét biến điều kiện
trường hợp biến điều kiện = giá trị 1
thì thực hiện khối lệnh 1
trường hợp biến điều kiện = giá trị 2
thì thực hiện khối lệnh 2
...
[mặc định
thì thực hiện khối lệnh khi không thỏa tất cả các trường hợp trên]
Dạng 2: mỗi nhóm các trường hợp có cùng một
cách xử lý
Cú pháp:
switch(biến điều kiện){
case giá trị 1:
case giá trị 2:
...
khối lệnh;
...
[default: khối lệnh khi không thảo tất cả các case trên]
}
Xem xét biến điều kiện
trường hợp biến điều kiện = giá trị 1
hoặc biến điều kiện = giá trị 2
hoặc ...
thì thực hiện khối lệnh
...
[mặc định
thì thực hiện khối lệnh khi không thỏa tất cả các trường hợp trên]
So sánh với cách viết dùng if
Cấu trúc lặp
Cấu trúc lặp cho phép thực hiện nhiều lần một khối
lệnh của chương trình khi thỏa điều kiện
Gồm có các cấu trúc: for, foreach, while, do.. while
Cấu trúc lặp for
Công dụng:
for được sử dụng khi chúng ta biết trước số lần cần
lặp, biến đếm chạy trong khoảng giới hạn của vòng
lặp, và giá trị lặp,
Cú pháp:
for($biến_đếm = giá trị khởi đầu của vòng lặp for;
điều kiện giới hạn của vòng lặp for; giá trị lặp của
vòng lặp for){khối lệnh}
Ý nghĩa:
Khối lệnh chỉ được thực hiện khi biến đếm vẫn còn
nằm trong khoảng giới hạn của vòng lặp
Vòng lặp sẽ kết thúc khi biến đếm vượt qua khoảng
giới hạn của vòng lặp.
Cần chỉ định giá trị lặp của biến đếm. Sau mỗi lần
lặp biến đếm sẽ tăng lên (hoặc giảm đi)
Cấu trúc lặp foreach
Công dụng:
foreach thường được dùng để duyệt tập hợp (mảng)
Cú pháp duyệt giá trị các phần tử trong mảng:
foreach ($ten_mang as $gia_tri){
khối lệnh
}
Cú pháp duyệt cả khóa và giá tị của các phần tử trong mảng
foreach ($ten_mang as $tu_khoa=>$gia_tri){
khối lệnh
}
Ý nghĩa:
Cấu trúc này sẽ duyệt từ phần tử đầu tiên đến phần
tử cuối cùng của tập hợp (mảng) để thực hiện các xử
lý tương ứng.
Cấu trúc lặp while
Công dụng
Thực hiện lặp đi lặp lại một công việc nào đó khi
thỏa điều kiện.
While được sử dụng khi không xác định được số
lần lặp (số lần lặp phụ thuộc vào điều kiện tại thời
điểm thực thi)
Cú pháp:
while(điều kiện){
khối lệnh
}
Ý nghĩa:
Điều kiện là một biểu thức logic (có kết quả TRUE hoặc
FALSE)
Sau mỗi lần thực hiện khối lệnh trong while, điều kiện sẽ
được kiểm tra lại.
Nếu có giá trị True thì thực hiện lại vòng lặp
Nếu giá trị False thì chấm dứt vòng lặp
Cấu trúc này kiểm tra điều kiện trước khi thực hiện các lệnh
nên sẽ không thực hiện lần nào nếu ngay lần đầu tiên điều
kiện có giá trị FALSE.
Cấu trúc lặp do… while
Công dụng
Thực hiện lặp đi lặp lại một công việc nào đó khi
thỏa điều kiện.
do… while: việc kiểm tra điều kiện sẽ được thực
hiện sau khi thực hiện khối lệnh đó {…}
Cú pháp
do {
khối lệnh
}
while(điều kiện);
Ý nghĩa
Điều kiện là một biểu thức logic (có kết quả TRUE hoặc
FALSE)
Sau mỗi lần thực hiện khối lệnh do.. while, điều kiện sẽ được
kiểm tra lại.
Nếu giá trị True thì thực hiện lại vòng lặp
Nếu giá trị False thì chấm dứt vòng lặp
Do điều kiện được kiểm tra sau khi thực hiện khối lệnh nên
nếu ngay lần đầu điều kiện có giá trị FALSE thì khối lệnh cũng
được thực hiện một lần.
Sử dụng break va continue trong cấu trúc lặp
break
Công dụng: thoát khỏi cấu trúc điều khiển dựa trên
kết quả của biểu thức luận lý kèm theo (điều kiện
kiểm tra)
Continue
Công dụng: Khi gặp continue, các lệnh bên dưới
continue tạm thời không thực hiện tiếp, khi đó con
trỏ sẽ nhảy về đầu vòng lặp để kiểm tra giá trị của
biểu thức điều kiện còn đúng hay không.
continue thường đi kèm với một biểu thức luận lý.
Xử lý lỗi
Phân loại lỗi
Lỗi cú pháp (syntax error)
Xuất hiện khi ta viết code
Được thông báo khi ta thực thi trang
Nguyên nhân: viết sai hoặc thiếu cú pháp.
Lỗi thực thi:
Xảy ra khi thực thi trang
Khó xác định hơn lỗi cú pháp
Nguyên nhân: Mở một tập tin đang tồn tại, chia cho 0,
truy xuất bảng không tồn tại trong CSDL,…
Lỗi luận lý:
Xảy ra khi thực thi trang
Được thể hiện dưới những hình thức hoặc kết quả
không mong đợi.
Nguyên nhân: sai lầm trong thuật giải.
Dò và sửa lỗi thủ công
Khi có lỗi phát sinh thì trang thực thi sẽ tự động
thông báo lỗi
Cách sửa lỗi:
Xem thông báo lỗi và dòng xảy ra lỗi
Mở code và sửa lỗi tại dòng đó (hoặc dòng lân cận)
Dùng try… catch để dò và sửa lỗi
Try… catch: cho phép thử thực hiện một khối lệnh xem
có bị lỗi hay không, nếu có sẽ bẫy và xử lý lỗi.
Cấu trúc try… catch có hai khối:
Khối try: các câu lệnh có khả năng gây ra lỗi
Khối catch: các câu lệnh để bẫy và xử lý lỗi phát sinh
trên khối try.
Một lỗi xảy ra khi thực thi trang gọi là một Exception.
Nếu dòng nào trong khối lệnh có khả năng tạo ra lỗi thì
gọi trả về lỗi đó.
Trong PHP lỗi sẽ tự động trả về => gọi lỗi đó bằng
cú pháp sau:
throw new Exception(“Câu thông báo lỗi”, code);
Với câu thông báo lỗi và mã lỗi (code) đều là các
tham số tùy chọn
Cú pháp:
try{
-khối lệnh có khả năng phát sinh lỗi
các lỗi
throw new exception ("câu thông báo lỗi", code);
}
catch(Exception $e)
{
echo "<p>Lỗi:".$e->getmessage()."</p>";
//xuất lỗi
}
Lưu ý:
Một khối try có thể dùng một hay nhiều khối catch
Mỗi khối catch hiển thị một loại lỗi khác nhau
Hàm giá trị của biến
Hàm thư viện
Là các hàm được PHP xây dựng sẵn, chỉ cần gọi
khi sử dụng
Có rất nhiều nhóm hàm trong thư viện: nhóm hàm
chuỗi, toán học, thời gian, lịch, mảng, thư mục, tập
tin, mail, CSDL,…
Cách dùng: viết đúng tên hàm và truyền vào các
giá trị cần thiết.
Ví dụ: dùng hàm round() để làm tròn một số, hàm
date() để lấy ngày hiện tại có định dạng ngày tháng
năm
Hàm do người dùng tự định nghĩa
Cách khai báo:
function tên_hàm(danh_sách_các_tham_số){
khối lệnh bên trong hàm
return giá_trị;
}
Trong đó:
Tên hàm: được sử dụng khi gọi hàm, tên hàm nên
có ý nghĩa gợi nhớ.
Danh sách các tham số: dùng để truyền dữ liệu bên
ngoài vào, hàm có thể có hoặc không có tham số
Giá trị: là kết quả trả về của hàm. Hàm có thể có
hoặc không có giá trị trả về.
Ví dụ 1:
<?php
function xuat_cau_chao(){
echo "chào mừng đến với php";
}
?>
xây dựng hàm xuất câu chào
Sử dụng:
Tên hàm gọi sử dụng phải giống tên hàm đã xây dựng
Tên_hàm(Danh_sách_các_giá_trị)
Danh sách các giá tri: cung cấp
thông tin cho tham số của
hàm. Với:
Số lượng các giá trị bằng số lượng các tham số của hàm.
Thứ tự tương ứng theo thứ tự tham số
Kiểu dữ liệu của giá trị phải tương ứng với kiểu của tham
số
Nếu hàm không có giá trị truyền vào thì phía sau tên hàm
cũng phải có cặp ()
Ví dụ 2:
<?php
xuat_cau_chao();
?>
gọi hàm xuất câu chào
Ví dụ 3:
xây dựng hàm tính tổng 2 số a và b với 2
tham số là a, b. Hàm có kết quả trả về là tổng của a
và b.
<?php
function tinh_tong($a, $b){
$tong = 0;
$tong = $a + $b;
return;
}
?>
ví dụ 4:
Gọi hàm tính tổng
<?php
$so_a = $_POST['a'];
$so_b = $_POST['b'];
$tong_a_b = tinh_tong($so_a, $so_b);
echo "Tổng của hai số a và b là: ".$tong_a_b;
?>
Phân loại tham số của hàm: có hai loại
Tham trị:
truyền tham số theo giá trị
Tham số truyền giá trị từ bên ngoài vào cho hàm.
Khi thay đổi giá trị của tham trị bên trong hàm thì
giá trị của nó nằm ở ngoài hàm vẫn không thay đổi.
<?php
function them_vao_chuoi($chuoi){
$chuoi.="và chuỗi sau khi thêm.";
return $chuoi;
}
$chuoi_goc = "đây là chuỗi gốc,";
echo them_vao_chuoi($chuoi_goc); -> "day la chuoi goc, va chuoi sau khi them."
echo $chuoi_goc; -> "day la chuoi goc, "
?>
Tham biến:
truyền tham số theo địa chỉ
Tham số truyền giá trị từ bên ngoài cho hàm và trả
giá trị ở trong hàm ra bên ngoài.
Khi thay đổi giá trị của tham biến bên trong hàm giá
trị của nó ở ngoài hàm cũng sẽ thay đổi sau khi
chúng ta gọi hàm đã xây dựng.
Đối với tham biến chúng ta sẽ dùng cú pháp với ký
tự & ở phía trước.
cú pháp:
function tên_hàm(&tên_tham_biến,...){
...
tên_tham_biến = giá trị;
return...;
}
ví dụ
<?php
function them_vao_chuoi(&$chuoi){
$chuoi.="và chuỗi sau khi thêm,.";
return $chuoi;
}
$chuoi_goc = "day la chuoi goc";
echo them_vao_chuoi($chuoi_goc);->"đây là chuỗi gốc, và chuỗi sau khi thêm. "
echo $chuoi_goc; -> "đây là chuỗi gốc, và chuỗi sau khi thêm."
?>
Tham số tùy chọn:
Là những tham số có thể được truyền giá trị hoặc
không.
Cho phép tạo sẵn các giá trị mặc định cho tham số.
Những tham số này chỉ xuất hiện ở cuối danh sách
các tham số.
Cú pháp:
function Ten_ham(danh sách các tham trị, tham biến, $tham_số_tùy_chọn = giá trị){
khối lệnh bên trong hàm
return giá _trị;
}
<?php
function so_thich($nuoc_uong = "cà phê"){
return "tôi thích uống $nuoc_uong.";
}
echo so_thich();->"tôi thích uống cà phê.";
echo so_thich("nước ép trái cây"); -> "tôi thích uống nuốc ép trái cây."
?>
Phạm vi hoạt động của biến
Biến cục bộ
Biến được khai báo bên trong hàm => biến cục bộ.
Khi ra khỏi hàm => biến cục bộ và giá trị của nó sẽ
bị hủy bỏ.
Lưu ý: khi có cùng tên thì biến bên trong hàm và
biến bên ngoài hàm là hai biến hoàn toàn khác
nhau.
<?php
$a = 1; //phạm vi toàn cục
function Test(){
echo $a; //phạm vi cục bộ
}
Test(); ->không có
echo $a; ->1
?>
Biến toàn cục
Có thể truy xuất bất cứ nơi nào trong trang
Khi muốn sử dụng và cập nhật biến toàn cục trong
hàm thì phải dùng từ khóa global phía trước biến
hoặc dùng
$_GLOBALS[“tên_biến”]
Ví dụ: dùng từ khóa global
<?php
$a = 1;
$b = 2;
function Sum(){
global $a, $b;
$b = $a + $b;
}
Sum();
echo $b; ->3
?>
Ví dụ: dùng biến $_GLOBALS
<?php
$a = 1;
$b = 2;
function Sum(){
$_GLOBALS['b'] = $GLOBALS['a'] + $_GLOBALs['b'];
}
Sum();
echo $b; -> 3
?>
Biến static
Không mất đi giá trị khi ra khỏi hàm.
Sẽ giữ nguyên giá trị trước đó khi hàm được gọi
một lần nữa.
Phía trước tên biến static phải có từ khóa static
<?php
function Test(){
static $a = 0;
echo $a;
$a++;
}
Test(); ->0
Test(); ->1
Test(); ->2
?>
Các hàm kiểm tra
Kiểm tra tồn tại isset()
Ý nghĩa: dùng để kiểm tra biến có giá trị hay không
Cú pháp: isset(<tên biến 1>, <tên biến 2>, …)
Kết quả trả về:
TRUE: nếu tất cả các biến đều có giá trị
FALSE: nếu một biến bất kỳ không có giá trị
<?php
if(isset($_POST['ten_dang_nhap']))
echo "xin chào".$_POST['ten_dang_nhap'];
else
echo "vui lòng nhập tên đăng nhập";
?>
Kiểm tra giá trị rỗng empty()
Ý nghĩa: dùng để kiểm tra biến có giá trị rỗng hay không.
Cú pháp: empty(<tên biến>)
Kết quả trả về:
TRUE: nếu biến có giá trị rỗng
FALSE: nếu một biến có giá trị khác rỗng
Các giá trị được xem là rỗng:
“” (chuỗi rỗng), NULL
0 (khi kiểu là integer), FALSE, array()
var $var (biến trong lớp được khai báo nhưng không có giá
trị)
<?php
if(empty($_POST['ten_dang_nhap'])){
echo "vui lòng nhập tên đăng nhập";
exit;
}
else
echo "xin chào".$_POST['ten_dang_nhap'];
?>
Kiểm tra kiểu số is_numberic()
Ý nghĩa: dùng để kiểm tra biến có giá trị kiểu số hay
không
Cú pháp:
is_numeric(<tên biến>)
Kết quả trả về:
TRUE: nếu biến có giá trị kiểu số
FALSE: nếu biến có giá trị không phải kiểu số
ví dụ
<?php
if(is_numeric($_POST['so_luong'])){
$so_luong = $_PoST['so_luong'];
$thanh_tien = $so_luong * $don_gia;
}
else
echo "số lượng phải là kiểu số!";
?>
Kiểm tra kiểu dữ liệu của biến
is_int() / is_long()
is_string()
is_double()
Ý nghĩa: kiểm tra giá trị của biến có phải là kiểu
integer – long – string – double hay không
Ý nghĩa: kiểm tra giá trị của biến có phải là kiểu
integer – long – string – double hay không
<?php
$a = "15";
is_int($a); ->0 (FALSE)
$b = 15;
is_int($b); ->1(TRUE)
$a = "hello";
is_string($a); ->1(TRUE)
$b = 12.5;
is_string($b); -> 0 (FALSE)
$x = 4.2135;
is_double($x); ->1(TRUE)
?>
Xác định kiểu dữ liệu của biến gettype()
Ý nghĩa: kiểm tra biến hoặc giá trị có kiểu dữ liệu
nào: integer, string, double, array, object, class, …
Cú pháp: gettype(<tên biến> hoặc <giá trị>)
Kết quả trả về: kiểu của giá trị hay kiểu của biến
<?php
$n = "đây là chuỗi";
$a = 123;
$b = 123.456;
$mang = array(1,2,3);
echo gettype($n);->string
echo gettype($a); ->integer
echo gettype($b); ->double
echo gettype($mang); -> array
?>
Các hàm toán học
Giá trị tuyệt đối
Giá trị tuyệt đối abs()
Kết quả trả về là giá trị tuyệt đối của một số
Cú pháp: abs(số)
<?php
echo abs(-4.2); ->4.2 (kiểu float/double)
echo abs(-5); ->5 (kiểu integer)
echo abs(4); ->4 (kiểu integer)
?>
Pi
Kết quả trả về là hằng số PI trong toán học
Cú pháp: pi()
<?php
echo pi(); -> 3.1415926...
?>
Lũy thừa
Kết quả trả về là phép tính lũy thừa của một số theo
một số mũ chỉ định
Cú pháp: pow(số, lũy thừa)
<?php
echo pow(2,5); ->32
?>
Phát sinh ngẫu nhiên
Kết quả trả về là một giá trị số nguyên ngẫu nhiên
bất kỳ (nằm trong khoảng từ 0 đến 32768)
Khi hàm rand() có hai tham số là giá trị nhỏ nhất
(min) và giá trị lớn nhất (max) thì giá trị trả về sẽ là
một giá trị số nằm trong khoảng từ giá trị nhỏ nhất
đến giá trị lớn nhất.
Cú pháp: rand([min, max])
<?php
echo rand(); ->10325
echo rand(); 7774
echo rand(10,100); ->57
?>
Làm tròn
round()
Kết quả trả về là một số đã được làm tròn.
Nếu chỉ có một tham số là số được truyền vào thì kết
quả trả về là một số nguyên.
Nếu có cả hai tham số là số và vị trí làm tròn thì kết quả
trả về là một số được làm tròn dựa trên vị trí làm tròn.
Cú pháp: round(số [, vị trí làm tròn])
Vị trí làm tròn là một số nguyên âm hoặc nguyên dương
để chỉ định vị trí muốn làm tròn, được tính từ vị trí dấu
chấm thập phân.
<?php
echo round(3.4); ->3
echo round(3.5); ->4
echo round(577.545,2); ->577.55
echo round(577.545,-1); -> 580
?>
Tính căn
Tính căn bậc hai của một số dương bất kỳ
Kết quả trả về là căn bậc hai của số
Cú pháp: sqrt(số)
<?php
echo sqrt(9); ->3
?>
Các hàm chuỗi
Bỏ khoảng trắng thừa
trim, ltrim, rtrim
Loại bỏ các ký tự thừa.
Kết quả trả về là một chuỗi không có ký tự thừa.
Cú pháp: ten_ham(str [, charlist])
Tham số bắt buộc là chuỗi str
Tham số tùy chọn là danh sách các ký tự muốn loại
bỏ.
<?php
$text = " xin chào các bạn :) ... ";
echo trim($text); -> "xin chào các bạn :)...";
echo ltrim($text); ->"xin chào các bạn :)... ";
echo rtrim($text); ->" xin chào các bạn :)...";
?>
Lưu ý: nếu không có tham số thứ 2 thì hàm ltrim(),
rtrim(), sẽ tự động loại bỏ các ký tự sau:
“” (ASCII 32 (0x20)), ký tự khoảng trắng.
“\t” (ASCII 9 (0x09)), ký tự tab.
“\n” (ASCII 10 (0x0A), ký tự về đầu dòng mới.
“\r” (ASCII 13 (0x0D), ký tự xuống dòng.
“\0” (ASCII 0 (0x00)), byte NULL.
“\x0B” (ASCII 11 (0x0B)), tab dọc.
Ngoài ra, có thể liệt kê các ký tự muốn loại bỏ ở charlist
Chiều dài chuỗi
Kết quả trả về là chiều dài của một chuỗi.
Cú pháp: strlen(str)
<?php
echo strlen ("abcdef"); ->6
?>
So sánh chuỗi_
có phân biệt
chữ HOA, chữ thường.
strcmp()
Kết quả trả về:
=0: nếu hai chuỗi bằng nhau
-1: nếu chuỗi str1 nhỏ hơn chuỗi str2
1: nếu chuỗi str1 lớn hơn chuỗi str2
So sánh hai chuỗi có phân biệt chữ HOA, chữ thường.
Cú pháp: strcmp(str1, str2)
Lưu ý: Việc so sánh chuỗi dựa trên bảng mã ASCII của
các ký tự.
<?php
echo strcmp("hello","Hello"); ->1(chuoi thu nhat lon hon chuoi 2) vi) trong bang ma ASCII ky tu 'h' co gia tri la 101 lon hon ky tu 'H' co gia tri la 72, cac ky tu con lai trong chuoi deu giong nhau.
echo strcmp("Hôm nay","Thứ tư"); ->-1
?>
So sánh chuỗi – Không phân biệt HOA – thường
strcasecmp(),
strnatcmp()
So sánh hai chuỗi không phân biệt chữ HOA, chữ
thường.
Kết quả trả về:
=0: nếu hai chuỗi bằng nhau
-1: nếu chuỗi str1 nhỏ hơn chuỗi str2
1: nếu chuỗi str1 lớn hơn chuỗi str2
Cú pháp:
strcasecmp(str1, str2)
strnatcmp(str1, str2)
<?php
echo strnatcmp("hello","Hello"); ->0
?>
Tìm vị trí của chuỗi con
strpos()
Kết quả trả về là vị trí tìm thấy của chuỗi str2 trong
chuỗi str1, nếu trong chuỗi str1 có nhiều chuỗi str2
thì kết quả trả về sẽ là vị trí đầu tiên mà chuỗi str2
xuất hiện trong chuỗi str1. Nếu không tìm thấy
chuỗi str2 trong chuỗi str1 thì kết quả trả về là
FALSE.
Cú pháp: strpos(str1, str2)
Lưu ý: Để kiểm tra kết quả thì phải dùng toán tử
=== thay cho toán tử == Tin Học KEY – Mở khóa công ngh
<?php
$str1="abc def a";
$str2="g";
vi_tri=strpos($str1, $str2);
if($vi_tri===FALSE)
echo 'khong tim thay";
else
echo "vi tri tim thay: ">$vi_tri;
?>
Lấy chuỗi con
Substr: lấy chuỗi con của một chuỗi
Cú pháp:
string substr(string string, int start [, int length)
Tham số:
string: chuỗi gốc
start: vị trí ban đầu
length: chiều dài chuỗi con
Kết quả trả về: chuỗi con
<?php
echo substr("Hôm qua em đến trường",5,3); ->"qua"
?>
Kết hợp và tách chuỗi – Tách chuỗi
Tách chuỗi
explode()
Tách chuỗi str thành nhiều chuỗi con bằng cách chỉ
định chuỗi tách separator và gán từng chuỗi con
này vào các phần tử của mảng.
Cú pháp: explode(separator, str)
<?php
$chuoi = "happy new year";
$mang_chuoi = explode(" ", $chuoi);
echo $mang_chuoi[0]; ->"happy"
echo $mang_chuoi[1]; ->"new"
echo $mang_chuoi[2]; ->"year"
?>
Kết hợp chuỗi
implode()
Kết hợp các phần tử của mảng thành một chuỗi và
các phần tử khi ráp thành chuỗi sẽ cách nhau bằng
chỉ định cách separator.
Cú pháp: implode(separator, array)
<?php
$mang_chuoi = array("happy", "new","year");
$chuoi = implode(" ",$mang_chuoi);
echo $chuoi; ->"happy new year"
?>
Thay thế chuỗi
str_replace: thay thế chuỗi
Cú pháp:
mixed str_replace(mixed search, mixed replace,
mixed subject [, int &count])
<?php
echo str_replace("em", "bé", "Hôm qua em đến trường");
->"Hôm qua bé đến trường"
?>
Các hàm thời gian
Kiểm tra ngày hợp lệ
checkdate()
Kiểm tra ngày với tháng, ngày, năm được truyền
vào, nếu ngày hợp lệ thì kết quả trả về là TRUE,
ngược lại trả về FALSE.
Cú pháp: checkdate(tháng, ngày, năm)
<?php
echo checkdate(10,22,2017); -> TRUE
?>
Định dạng ngày
date()
Kết quả trả về là ngày hiện tại sau khi đã được định
dạng.
Cú pháp: date(chuỗi định dạng [, số giây])
<?php
echo date("d/m/Y h:m:s")
-> 22-10-2017 10:34:10
echo date("D-M-Y"); -> Sun-Oct-2017
?>
Đổi thời gian sang đơn vị giây
mktime()
Kết quả trả về là tổng số giây của thời gian nếu các
tham số thời gian được truyền vào phù hợp, ngược
lại sẽ trả về FALSE.
Tổng số giây = thời gian được truyền vào trong
hàm mktime() – January 1 1970 00:00:00 (vì thời
gian bắt đầu là January 1 1970 00:00:00)
Cú pháp:
mktime([hour [, minute [, second [, month
[, day [, year [, is_dst]]]]]]])
<?php
echo mktime(0,0,0,1,1,1998); -> 883.587.600
echo date("M-d-Y", mktime(0,,0,0,1,1,1998)); -> Jan-01-1998
echo date("M-d-Y", mktime(0,0,0,1,1,98)); -> Jan-01-1998
?>
Lấy thời gian hiện tại
time()
Kết quả trả về là thời gian hiện tại được đo lường
theo giá trị giây (tính từ 1/1/1970 00:00:00 GMT)
Cú pháp:
time()
<?php
tuan_sau = time() + (7
24
60*60);
//7 days, 24 hours, 60 mins, 60secs
echo "hiện tại: ".date("Y-m-d")."<br>";
-> hien tai: 2007-11-28
echo "Tuần sau: ".date("Y-m-d", $tuan_sau)."<br/>";
-> Tuần sau: 2007-12-05
?>