Kiểu dữ liệu – Hằng – BiếnChuyển kiểu dữ liệu $newint = int $var1; $newfloat = float $var1; $newstring = string $var1; Xuất thông tin biến var_dump$myvariable; Kiểm tra nội dung biến is
Trang 3Giới Thiệu về PHP
I.1 Lịch sử : PHP (Hypertext Preprocessor) là ngôn ngữ script trên server được thiết kế để dễ dàng xây dựng các trang Web động
Ngôn ngữ PHP ra đời năm 1994 Rasmus Lerdorf (1968, GreenLand) sau
đó được phát triển bởi nhiều người trải qua nhiều phiên bản Phiên bản đang phổ biến là PHP 5.0 đã được công bố 7/2004.Phiên bản mới nhất là 5.4.3
Ưu điểm :Mã nguồn mở (open source code)
- Miễn phí, download dễ dàng từ Internet
Trang 5Quá Trình Thông Dịch file PHP
Trang 6Kiểu dữ liệu – Hằng – Biến
a- Kiểu dữ liệu:
Integer, Double, Boolean, String, Array và Object
b Khai báo biến:
Trang 7Kiểu dữ liệu – Hằng – Biến
Chuyển kiểu dữ liệu
$newint = (int) $var1;
$newfloat = (float) $var1;
$newstring = (string) $var1;
Xuất thông tin biến
var_dump($myvariable);
Kiểm tra nội dung biến
isset($varname) empty($varname) is_int ($varname) is_array ($varname) is_float ($varname) is_null ($varname) is_numeric ($varname) is_string ($varname)
Xuất dữ liệu echo $myvariable;
printf $myvariable;
Trang 8e Các phép toán logic : !, &&, ||
f Toán tử tam phân : (điều_kiện ? giá_trị_1 : giá_trị_2)
g Phép ghép chuỗi : (dấu chấm)
h Toán tử error : @, ngăn không cho thông báo lỗi
Ví dụ : $a=10; $b=0; $c=@$a/$b
Trang 10• pow : lũy thừa
• rand : tạo số ngẫu nhiên
• round : làm tròn
• Max, min : lấy giá trị lớn, nhỏ
• Abs : trị tuyệt đối
Trang 11Các câu lệnh điều khiển
a- Câu lệnh if Các cú pháp thông dụng:
Trang 12Các câu lệnh điều khiển (tt)
b Câu lệnh switch
Cú pháp :
switch($biến){
case giá_trị_1: nhóm lệnh 1 ; break;
case giá_trị_2: nhóm lệnh 2 ; break;
Trang 13Các câu lệnh điều khiển (tt)
Trong PHP có 4 câu lệnh lặp, trong đó foreach có cách sử dụng đặc sắc so với các NNLT khác Muốn thoát khỏi vòng lặp : sử dụng lệnh exit
Trang 14Phân biệt ngoặc đơn và kép :
- Chuỗi sử dụng ngoặc đơn được lưu trữ như một chuỗi bình thường
- Chuỗi sử dụng ngoặc kép được lượng giá các biến và kí tự đặc biệt trong chuỗi trước khi lưu trữ
$str=<<<ENDOFTEXT
…
… ENDOFTEXT;
$number = 10;
$string1 = “There are ‘$number’ people in line.”;
$string2 = ‘There are “$number” people waiting.’;
echo $string1,”\n”;
echo $string2;
Trang 15- substr($str,$pos,$len) : tách một chuổi con từ một chuổi
- strpos($str,$sub) : vị trí chuổi $sub trong chuổi $str
- str_replace($rep,$with,$str) : thay $rep bằng $with trong $str
- explode($separator,$str) : tách chuổi $str thành các chuổi con dựa trên dấu phân cách $separator và lưu kết quả vào mảng, ~ phương thức split của JavaScript Ngược lại là hàm implode hay join
- str_repeat(“str”,n) : lặp lại str n lần
- str_chr(“str”,”chr”) : trả về 1 chuỗi bắt đầu từ kí tự chr trong str
- stristr(“str”,”chr”) : giống str_chr nhưng không phân biệt hoa thường
- strlen(“str”) : chiều dài chuỗi str
- strrev(“str”) : đảo ngược chuỗi str
Trang 16Chuỗi Kí Tự (tt)
Ví dụ: Chuẩn hóa một chuổi văn bản(dạng đơn giản) : không có ký tự trống ở hai đầu, giữa 2 từ chỉ có duy nhất một ký tự trống.
<?php
$str=“ Thầy Nguyễn Minh Thành “;
echo “<br />Độ dài chuổi ban đầu “.strlen($str);
Trang 17echo "<h2>Danh sách giáo viên:</h2>";
foreach($arr as $key=>$value) echo ($key+1)."-".$value."<br />";
?>
Trang 18Dữ Liệu Ngày – Giờ
Trang 19Dữ Liệu Ngày – Giờ
Trang 20Mảng Một Chiều
1 Khai báo :
$n=100;
$arr1 = array($n);
$arr2 = array(giá_trị_1, giá_trị_2, , giá_trị_n);
$arr3 = range(100,900);// range(“z”, “a”);
$arr4 = arrr(hoten=>“Minh Thành”, quequan=>“HCM”, tuoi=>27;IQ=“Rất cao”); // mảng kết hợpCâu lệnh lặp foreach rất hiệu quả khi duyệt mảng kết hợp
Trang 21Mảng Một Chiều (tt)
2- Sử dụng
-Truy cập một phần tử mảng : $arr[$key]
$key có ý nghĩa rộng hơn Index, dùng tham chiếu đến một phần tử của mảng
Ví dụ 1: Tạo mảng gồm 10 phần tử là các số nguyên lấy ngẫu nhiên
trong [0,100] Khởi tạo $key là 0.
<?php
$arr = array(10);
for($i=0; $i<10; $i++) $arr[$i] = rand(0,100);
for($i=0; $i<10; $i++) echo ($i+1).”-”.$arr[$i].”<br>”;
?>
Trang 23Mảng Một Chiều (tt)
-Truy cập một phần tử mảng : sử dụng hàm each()
while($item=each($arr)){
echo $item[“key”] ”,”;
echo $item[“value”] “<br>”;
Hàm list($k,$v) tách cặp giá trị (key, value) của phần tử có “chỉ số” là
$key ra hai biến $k và $v
Trang 24Các Hàm Về Mảng
-Hàm count(), sizeof() : trả về kích thước của mảng
+ current()/end() : trả về phần tử đầu tiên/ cuối cùng của mảng
+ prev() / next() : trả về phần tử liền trước / kế kiếp
+ sort() , asort(), rsort(), arsort(): sắp xếp mảng theo value của phần tử
+ ksort(), krsort() :sắp xếp mảng theo key của phần tử
- is_array() kiểm tra mảng
- Print_r() hoặc var_dump(): xem nội dung mảng
- Unset($arr[$key]) : xóa phần tử $key khỏi mảng
Trang 254- Mảng động : Cho mảng gồm 10 số tự nhiên,tạo một mảng con chứa
những số lẻ của mảng này, In ra mảng con này
<?php
$arr=array(2,4,9,2,3,5,8,1);
$child=array(); // sử dụng mảng động
while(list($k,$v)=each($arr)) if($v%2!=0) $child[]=$v;
echo "So phan tu cua mang con ".count($child)."<br />";
// In ra mảng con gồm các số lẻ từ mảng $arr
for($i=0;$i<count($child);$i++) $child[$i]."<br />"
?>
Trang 26Các Mảng Xây Dựng Sẵn
Trang 27Các Mảng Xây Dựng Sẵn
Ví dụ : xuất các thành phần trong mảng $_SERVER
foreach($_SERVER as $key =>$value) {
echo “Key=$key, Value=$value\n”;
}
Trang 281- Cú pháp:
function tên_hàm([các_tham_số]) {
// Khai báo biến riêng
-Hàm không có giá trị trả về : tên_hàm([các_tham_số]);
-Hàm có giá trị trả về : tham gia vào các biểu thức, gán giá trị cho biến
Trang 29echo “<table border=1>”;
reset($a); // trỏ về phần tử đầu tiên của mảng $a;
$value=current($a); // phần tử hiện thời của mảng $a
Trang 30Hàm (tt)
B- Hàm có giá trị trả về
<?php
$arr=array(hoten=>“Minh Thành",diachi=>“HCM");
function is_hoten( $mang ) {
// trả về value của phần tử có key là hoten
Trang 31- Biến chung : được khai báo ngoài phạm vi các hàm, hoặc global
- Biến riêng: khai báo bên trong hàm (nếu không có global)
- Biến $_SESSION : có giá trị toàn cục, cho mọi trang trong phiên PHP
xây dựng sẵn một số biến toàn cục với tên quy ước $_TÊN (in hoa)
function tên_hàm($x){
global $total; $total=giá_trị;
static $index; $index=giá_trị;
// các lệnh PHP
}
4- Tham trị và tham biến
-Hàm trên được gọi với tham trị
-Hàm sau đây sẽ được gọi với tham biến :
function tên_hàm(&$y){
// các lệnh PHP}
Trang 32Phương Thức Truyền Dữ Liệu
Đây là những biến toàn cục nhận các giá trị gởi từ client
đến server bằng phương thứ Post hay Get
1- Phương thức POST
<form action=receive.php method=POST>
<input type=text name=“hoten”>
Trang 33Phương Thức Truyền Dữ Liệu (tt)Trường hợp đặc biệt: nhận dữ liệu gởi từ các checkbox cùng tên:
Goi.html
<form action=Nhan.php method=post>
<input type=checkbox name=box[] value=1>Một
<input type=checkbox name=box[] value=2>Hai
<input type=checkbox name=box[] value=3>Ba
<input type=submit name=“Sumit”>
Trang 34Phương Thức Truyền Dữ Liệu (tt)
2- Phương thức GET
Giả sử trang goi.html chứa đoạn mã:
<a href=“nhan.php ?hoten=Hà Giang”>Đăng ký </a>
Ta gọi: gởi dữ liệu đến trang nhan.php theo phương thức GET, các biến
khác được ghép bởi ký hiệu &
Chú ý: hoten=Hà Giang , không đóng dấu nháy kép!
Trang 35-Sử dụng hàm include(), require() để chèn tệp tin PHP, HTML vào một trang PHP khác Ngoài ra còn có: include_once(), require_once(),
- Phân biệt include() và require()
include(“tên_tệp”) : nếu tên_tệp không tồn tại thì PHP thông báo lỗi và
vẫn tiếp tục thực thi script còn lại.
require(“tên_tệp”) : nếu tên_tệp không tồn tại thì PHP dừng thực thi
script
-Sử dụng include(), require() là một cách tái sử dụng đoạn mã đã viết
Ví dụ :Trang Index.php bao gồm 3 khối:
- header.inc : gồm các khai báo <html> <body>
- menu.php : gồm các liên kết
- footer.php: gồm các thông tin về website và </body></html>
Trang 37<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style>
body{margin:10 10 10 60; font: normal 18pt Arial; color:navy}
// khai báo để DEMO hiển thị rõ ràng khi trình bày trên LCD Projector!
$copyright="<hr /><div class=ft>Copyright by NDTFIT,1995-".date("Y");
$copyright.="<br />Khoa Tin học, Trường Đại học Sư phạm</div>";
// năm hiện thời tự động cập nhật
echo $copyright;
?>
</body></html>
Trang 38$strMenu.="<a href='#'>Post, Get</a><br />";
$strMenu.="<a href='#'>Cookie, Session</a><br />";
echo $strMenu;
?>
Trang 39Hỏi Đáp ?