SlideShare a Scribd company logo
1 of 50
PHP Lesson 2
Pasha Mohamed
VDTQT-Hutech
Agenda
Ngôn ngữ lập trình PHP
- Giới thiệu và tổng quan về PHP:
1. Cấu trúc PHP
2. Kiểu dữ liệu, hằng và biến
3. Các phép toán trong PHP
4. Các cấu trúc điều khiển
5. Hàm trong PHP
6. Mảng (array)
- Lập trình hướng đối tượng trong PHP.
Giới Thiệu
• PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-
used open source general-purpose scripting language that is especially
suited for web development and can be embedded into HTML (ref:
http://php.net/manual/en/intro-whatis.php)
• PHP có cú pháp ngôn ngữ tương tự ngôn ngữ C & Perl
• Tập tin PHP có phần mở rộng là .php
• Là ngôn ngữ server-side script, tương tự như JSP, ASP.Net… thực thi ở
phía WebServer. (current 8.1, 7 is most used)
PHƯƠNG ÁN 1
https://www.apachefriends.org/download.html
PHƯƠNG ÁN 2
http://www.wampserver.com/en/
PHƯƠNG ÁN 3 Cấu hình manual
Yêu cầu cần thiết để xây dựng ứng dụng bằng ngôn ngữ
PHP?
Các hệ thống xây dựng bằng PHP
 Loại hệ thống chuyên về Quản trị nội dung, cổng thông tin
(CMS – Content Management System / Portals)
Các hệ thống xây dựng bằng PHP
 Loại hệ thống chuyên về Diễn đàn (Forum)
 SMF
 PunBB
 Phorum
 AEF
 Vanilla
 UseBB
 miniBB
 XMB
 …
Các hệ thống xây dựng bằng PHP
 Loại hệ thống chuyên về Blog:
WordPress, Textpattern, Nucleus CMS, LifeType,
Serendipity, Dotclear, Zomplog, FlatPress, NibbleBlog,
Croogo, …
 Loại hệ thống về thương mại điện tử (eCommerce)
Magento, Zen Cart, OpenCart, osCommerce, PrestaShop,
AlegroCart, Freeway, eclime, osCSS, TomatoCar, …
 Loại hệ thống về đào tạo trực tuyến (LCMS–Learning
Course Management System)
Moodle, ATutor, eFront, Dokeos, Docebo, Interact,
DrupalEd, ILIAS, Open Conference Systems, Open Journal
Systems, …
Cơ chế thực thi của PHP
2
www.example.com
Webserver
Database
Server
Disk
driver
3
4
5
6
7
Ví dụ “Hello world”
Sử dụng phương thức echo "Nội dung" để xuất thông
tin lên trình duyệt.
Cấu trúc PHP
Cú pháp và quy ước
 Các phương pháp nhúng code PHP trong trang HTML:
 Quy ước viết code PHP tương tự ngôn ngữ C: kết thúc câu
lệnh dùng dấu chấm phẩy “;” , phân biệt chữ hoa, thường,…
 Ghi chú trong PHP:
o // ghi chú đơn
o /* đoạn ghi chú */
Thẻ mở Thẻ đóng Ghi chú
<? ?>
Cần cấu hình server
cho phép hỗ trợ
shorthand-support 
ít dùng
<?php ?> Thường dùng
<script language="php"> <script> ít dùng
 Kiểu dữ liệu trong PHP khá đa dạng, được chia thành 2 nhóm
chính sau:
 Scalar (cơ bản): boolean, int, float, string, NULL..
 Composite (đa hợp): array, object,..
 Kiểu dữ liệu trong PHP được khởi gán và chuyển đổi kiểu
một cách tự động trong quá trình khai báo hằng và biến.
 Việc ép kiểu dữ liệu trong PHP có thể thực hiện theo cách
sau:
 Tên_Biến = (Data_type) Tên_Biến;
 settype($Tên_Biến, "Data_type");
Ví dụ:
<?php
$So_thuc = 10.75;
echo (int)$So_thuc; // output: 10
?>
Kiểu dữ liệu, hằng và biến
. Hàm hàm liên quan đến kiểu dữ liệu
 Sử dụng các hàm cơ bản sau để kiểm tra kiểu dữ liệu
https://www.php.net/manual
gettype is_string isset
is_integer is_array unset
is_double is_object empty
Ví dụ:
$var = "test";
if (isset($var))
echo "Variable is Set";
if (empty($var))
echo "Variable is Empty";
Kiểu dữ liệu, hằng và biến
Khai báo hằng và biến
 Cú pháp khai báo hằng:
define('Tên_hằng', Giá_trị);
 Cú pháp khai báo biến:
$Tên_biến = Giá_trị;
 Lưu ý:
 Tên biến có thể bao gồm các Ký tự (A..Z, a..z), Ký số (0..9),
_, $. (phân biệt chữ hoa, chữ thường)
 Không khai báo kiểu dữ liệu (kiểu dữ liệu tự động được
khởi tạo ở lần đầu tiên khi gán giá trị cho biến).
 Tên biến không được bắt dầu bằng ký số (0..9).
Khai báo hằng và biến
<?php
define(‘Ngan98’, 98);
echo Ngan98; // xuất ra màn hình giá trị của hằng
?>
<?php
$sinhvien = ''; //đúng
$_sinh_vien = ''; //đúng
$sinh_vien90 = ''; //đúng
$90sinhvien = ''; //sai
?>
Toán tử cơ bản
Loại Toán tử
Toán học + - * / % ++ --
So sánh < > <= >= != == === !==
Luận lý && || ?: ,
Xử lý bit ! ~ << >> >>>
AND OR NOT XOR
Gán = += -= *= /= %=
>>= <<= &= |= ^= .=
Điều kiện ? :
Toán tử toán học
Toán
tử
Miêu tả Ví dụ
+ Cộng hai toán hạng A + B kết quả là 30
- Trừ toán hạng thứ hai từ toán
hạng đầu
A - B kết quả là -10
* Nhân hai toán hạng A * B kết quả là 200
/ Phép chia B / A kết quả là 2
% Phép lấy số dư B % A kết quả là 0
++ Toán tử tăng, tăng giá trị toán
hạng thêm một đơn vị
A++ kết quả là 11
-- Toán tử giảm, giảm giá trị toán
hạng đi một đơn vị
A-- kết quả là 9
Giả sử biến A giữ giá trị 10, biến B giữ 20 thì:
Toán tử so sánh
Toán tử Miêu tả Ví dụ
== Kiểm tra nếu 2 toán hạng bằng nhau hay không. Nếu bằng thì
điều kiện là true.
(A == B) là không true.
!= Kiểm tra 2 toán hạng có giá trị khác nhau hay không. Nếu
không bằng thì điều kiện là true.
(A != B) là true.
> Kiểm tra nếu toán hạng bên trái có giá trị lớn hơn toán hạng
bên phải hay không. Nếu lớn hơn thì điều kiện là true.
(A > B) là không true.
< Kiểm tra nếu toán hạng bên trái nhỏ hơn toán hạng bên phải
hay không. Nếu nhỏ hơn thì là true.
(A < B) là true.
>= Kiểm tra nếu toán hạng bên trái có giá trị lớn hơn hoặc bằng
giá trị của toán hạng bên phải hay không. Nếu đúng là true.
(A >= B) là không true.
<= Kiểm tra nếu toán hạng bên trái có giá trị nhỏ hơn hoặc bằng
toán hạng bên phải hay không. Nếu đúng là true.
(A <= B) là true.
Giả sử biến A giữ giá trị 10, biến B giữ 20 thì:
Toán tử logic
Toán tử Miêu tả Ví dụ
and Được gọi là toán tử Logic AND. Nếu cả hai toán hạng là true thì
điều kiện trở thành true
(A and B) là true.
or Được gọi là toán tử Logic OR. Nếu một trong hai toán hạng là
đúng thì điều kiện trở thành true
(A or B) là true.
&& Được gọi là toán tử Logic AND. Nếu cả hai toán hạng là true thì
điều kiện trở thành true
(A && B) là true.
|| Được gọi là toán tử Logic OR. Nếu một trong hai toán hạng là
đúng thì điều kiện trở thành true
(A || B) là true.
! Được gọi là toán tử Logic NOT. Sử dụng để đảo ngược trạng
thái logic của toán hạng. Nếu điều kiện là true thì toán tử Logic
NOT sẽ cho kết quả là false
!(A && B) là false.
Toán tử gán
Toán tử Miêu tả Ví dụ
= Toán tử gán đơn giản. Gán giá trị toán hạng bên phải cho toán
hạng trái
C = A + B sẽ gán giá trị của A + B vào trong C
+= Thêm giá trị toán hạng phải tới toán hạng trái và gán giá trị đó
cho toán hạng trái
C += A là tương đương với C = C + A
-= Trừ đi giá trị toán hạng phải từ toán hạng trái và gán giá trị này
cho toán hạng trái
C -= A là tương đương với C = C - A
*= Nhân giá trị toán hạng phải với toán hạng trái và gán giá trị này
cho toán hạng trái
C *= A là tương đương với C = C * A
/= Chia toán hạng trái cho toán hạng phải và gán giá trị này cho
toán hạng trái
C /= A là tương đương với C = C / A
Toán tử điều kiện
Toán
tử
Miêu tả Ví dụ
? : Biểu thức điều kiện Nếu điều kiện là true ? Thì giá trị X
: Nếu không thì giá trị Y
Các hàm liên quan đến số
abs pow decbin srand(seed)
ceil sqrt bindec rand
floor log dechex rand(min, max)
round log10 hexdec …
 Ví dụ:
rand (tối thiểu, tối đa);
<? php
echo (rand (10, 30). "<br>"); //ngẫu nhiên từ 10->30
echo (rand (1, 1000000). "<br>");
echo (rand ()); //ngẫu nhiên bất kì
?>
Ví dụ toán tử số học
 Cho biết kết quả của các ví dụ sau:
 Ví dụ 1:
<html>
<head><title>Toán tử số học</title><head>
<body>
<?php
$a = 19;
$b = 24;
$c = $a + $b;
echo "Kết quả phép cộng: $c <br/>";
$c = $a - $b;
echo "Kết quả phép trừ: $c <br/>";
$c = $a * $b;
echo "Kết quả phép nhân: $c <br/>";
$c = $a / $b;
echo "Kết quả phép chia: $c <br/>";
$c = $a % $b;
echo "Phần dư phép chia: $c <br/>";
$c = $a++;
echo "Thêm một vào $c: $a <br/>";
$c = $a--;
echo "Giảm $a đi 1: $c <br/>";
?>
</body>
</html>
Các hàm liên quan đến chuỗi
 Toán tử nối chuỗi: dùng dấu chấm “.”
$str = "Hello"." World"; // $str = “Hello World”
 Thường thì bạn có 4 cách để có được chuỗi ký
tự cần thiết:
 Sử dụng cặp ký tự nháy đơn '.
 Sử dụng cặp ký tự nháy kép ".
 Sử dụng cú pháp heredoc.
 Sử dụng cú pháp nowdoc.
 Hàm xử lý chuỗi thông dụng
printf trim strtolower
str_pad str_replace strtoupper
strlen substr strcasecmp …
Biểu diễn chuỗi theo nháy đơn '
 Đây là cách đơn giản để có được chuỗi ký tự. Chuỗi là
các ký tự nằm giữa cặp nháy đơn ‘ '. Khi dùng kiểu
này muốn chứa ' thì dùng ', muốn chứa  thì dùng .
 Ví dụ:
<?php
$value = 'Abc';
echo 'đây là một chuỗi ký tự';
echo 'Chuỗi này có ký tự ' bên trong';
echo 'Kiểu này không chèn biến $value vào chuỗi';
?>
Biểu diễn chuỗi theo nháy kép "
 Chuỗi là các ký tự nằm giữa cặp nháy kép “ ". Khi dùng chuỗi này Php sẽ
tự động chuyển ký hiệu một số ký tự đặc biệt. Ví dụ: n là LF - dòng mới,
r là CR - đầu dòng, t là ký tự tab, $ là ký tự $, " là ký tự ",  là ký tự  ...
 Ví dụ:
<?php
$doing = 'learning PHP';
echo "I am $doing";
?>
Biểu diễn chuỗi theo Heredoc
 Nếu hai cách trên vẫn thấy gò bó trong việc sử dụng chuỗi thì bạn có thể
tham khảo Heredoc, nó vẫn tận dụng được cách dùng "" tự chèn giá trị
biến nhưng thoải mái hơn khi sử dụng các ký tự đặc biệt.
 Heredoc bao giờ cũng bắt đầu bằng <<<, tiếp theo là một tên đinh danh do
bạn đặt rồi phải xuống dòng ngay, và cuối cùng phải kết thúc bằng định
danh; ở một dòng mới.
Ví dụ về chuỗi
 Ví dụ sau tôi chọn định danh có tên là CONMEO:
 Ví dụ :
<?
$congi = 'mèo';
$caygi = 'cau';
$str = <<<CONMEO
Con $congi mà trèo cây $caygi,
Hỏi thăm chú chuột đi đâu vắng nhà.
Chú chuột đi chợ đường xa.
Mua mắm mua muối giỗ cha chú $congi.
CONMEO;
echo $str;
?>
Kết quả:
Con mèo mà trèo cây cau,
Hỏi thăm chú chuột đi đâu vắng nhà.
Chú chuột đi chợ đường xa.
Mua mắm mua muối giỗ cha chú mèo.
Biểu diễn chuỗi theo Nowdoc
 Cách này khá giông với Heredoc, nhưng bắt đầu bằng <<<'Định-Danh' (có
cặp '' - heredoc thì không có). Nowdoc sẽ không phân tích biến đề chèn
vào chuỗi.
 Trở lại bài thơ trên nếu dùng nowdoc
Ví dụ về chuỗi
 Ví dụ sau tôi chọn định danh có tên là CONMEO:
<?
$congi = 'mèo';
$caygi = 'cau';
$str = <<<'CONMEO'
Con $congi mà trèo cây $caygi,
Hỏi thăm chú chuột đi đâu vắng nhà.
Chú chuột đi chợ đường xa.
Mua mắm mua muối giỗ cha chú $congi.
CONMEO;
echo $str;
?>
Kết quả:
Con $congi mà trèo cây $caygi,
Hỏi thăm chú chuột đi đâu vắng nhà.
Chú chuột đi chợ đường xa.
Mua mắm mua muối giỗ cha chú $congi.
Cấu trúc lặp
If .. Else
..
Cấu trúc điều kiện
Switch .. Case ..
For ..
While ..
Do .. While
Tham khảo thêm: foreach, break, continue
Các cấu trúc điều khiển
Ví dụ cấu trúc điều khiển
$so_can_kiem_tra = 12;
$so_du = $so_can_kiem_tra % 2;
if ($so_du == 0){
echo 'Số '.$so_can_kiem_tra.' Là Số Chẵn';
}
<?php
$colors = array("red", "green", "blue", "yellow");
foreach ($colors as $value) {
echo "$value <br>"; //line break
}
?>
for ($i = 0; $i < 10; $i++){
echo $i . ' - ';
}
Khai báo hàm
function functionName ([parameter1]...[,parameterN])
{
statement[s] ;
[return ….. ;]
}
Trong đó:
 functionName: tên hàm
 parameter: danh sách tham số
 return: giá trị hàm trả về nếu có
Khai báo hàm
 Ví dụ: xây dựng hàm tính tổng
$so1 = 12;
$so2 = 13;
echo tinhtong($so1, $so2);
function tinhtong($a, $b)
{
return $a + $b;
}
Hàm – phạm vi biến
 Ví dụ: cho biết kết quả của đoạn lệnh sau
// Biến toàn cục
$bien_toan_cuc = 12;
function kiem_tra()
{
// Biến cục bộ
$bien_cuc_bo = 13;
// Lấy biến toàn cục
global $bien_toan_cuc;
// Lấy số dư biến cục bộ chia cho biến toàn cục và
// kiểm trả về true nếu số dư = 0, ngược lại trả về false
if ($bien_cuc_bo % $bien_toan_cuc){
return true;
}
else{
return false;
}
}
Dùng từ khoá global để xác định phạm vi biến toàn cục
Khai báo mảng
 Mảng trong PHP có thể được khai báo theo 2 cách như sau:
 NumericArray (Mảng chỉ số là số): Mảng dạng số là mảng mà mỗi phần
tử của nó có một chỉ số là số nguyên. Một biến mảng dạng này chỉ số sẽ
gán một cách tự động và bắt đầu từ chỉ số là số 0 khi phần tử đầu tiên
được thêm vào, cứ thế phần tử thứ 2 thêm vào mảng sẽ có chỉ số là 1
Phần tử đầu tiên trong mảng có chỉ số index = 0
<?php
$names = ["An", "Minh", "Long"]; // khởi tạo mảng $name, đưa vào nó 3
phần tử
var_export($names); // export biến mảng
Output:
array (
0 => 'An',
1 => 'Minh',
2 => 'Long',
)
Khai báo mảng
 Mảng trong PHP có thể được khai báo theo 2 cách như sau:
 Associative Array (Mảng kết hợp): Mảnh kết hợp này thì tên chỉ số là một giá
trị nào đó do bạn gán vào, có thể là một string hay một số ...
<?php
$ngay_thu = [
'Mon' => "Thứ Hai",
'Tue' => "Thứ Ba",
'Wed' => "Thứ Tư",
'Thu' => "Thứ Năm"
];
foreach ($ngay_thu as $k => $v)
echo "$k ($v)", PHP_EOL;
?>
Các hàm liên quan đến mảng
• var_dump ($array) : xuất nội dung thông tin mảng
• is_array(array) : kiểm tra mảng
• count(array) : số lượng phần tử
• min(array) : phần tử nhỏ nhất trong mảng
• max(array) : phần tử lớn nhất trong mảng
• reset(array) : khởi tạo lại mảng
• array_push(array, elements) : thêm phần tử cuối mảng
• array_pop(array) : lấy phần tử cuối mảng
• array_unshift(array, elements) : thêm phần tử đầu mảng
• array_shift(array) : lấy phần tử đầu mảng
• array_merge(array, array) : trộn 2 mảng
• shuffle(array) : sắp xếp mảng ngẫu nhiên
• array_reverse : đảo mảng
• sort(array, flag) : sắp xếp mảng
OOP với PHP
Lập trình hướng đối tượng (object-oriented programming gọi tắt là OOP ) là cách thức lập trình hiện đại,
có nhiều ưu điểm trong việc phát triển project.
Với OOP , các thông tin cần xử lý sẽ được diễn tả thành các đối tượng. Như mỗi sản phẩm, mỗi tin tức ,
mỗi nhà sản xuất, mỗi user… là mỗi đối tượng. Trong 1 đối tượng sẽ có nhiều thông tin (properties),
nhiều hàm(methods) được khai báo, tùy nhu cầu nghiệp vụ và cách bạn tổ chức.
OOP với PHP
Class trong OOP
Trong OOP, bạn sẽ khai báo ra nhiều class, mỗi class đặt trong dấu { } . Bên trong là các biến và
các hàm trong class. Các biến và hàm khai báo ở đây có tầ, vực sử dụng chỉ ở trong class .
Class là khuôn mẫu để theo đó mà các đối tượng được tạo ra. Ví dụ trước khi tạo đối tượng sản
phẩm, bạn cần tạo class có tên sanpham. Trong class này bạn khai báo có tênsp, giásp,
hìnhsp…thì các đối tượng bạn khai báo sau này dựa trên class sanpham sẽ có các thông tin tênsp,
giásp, hìnhsp
<?php
class khachhang{
var $hoten;
var $namsinh;
function showhoten() { return $this->hoten; }
}
$kh1 = new khachhang;
$kh1->hoten =“Nguyen Van A";
$kh1->namsinh = 1980;
echo "<h4>Họ tên: ", $kh1->showhoten(), "</h4>";
?>
OOP với PHP
Constructor của class
Khi làm việc với OOP trong PHP, bạn rất thường làm việc với một hàm đặc
biệt, đó là hàm Constructor – hàm tự động chạy khi 1 đối tượng được tạo từ
class.
Trong mỗi class, hàm Contructor có tên là __construct. Trong hàm này, bạn
sẽ thường viết code khởi tạo giá trị cho các biến, kết nối database, kiểm tra
quyền của user…
Hàm __construct có thể dùng nhiều tham số nếu muốn.
Destructor của class
Destructor là hàm trong class sẽ tự động chạy khi 1 đối tượng bị hủy (khi
trang web kết thúc hoặc bạn dùng hàm unset để hủy đối tượng)
Các tính chất của OOP
Các tính chất của OOP
Tính đóng gói
Các thuộc tính và hàm của đối tượng được đóng gói lại, bên
ngoài đối tượng không nhìn thấy mà chỉ có thể truy cập theo
quyền truy cập phù hợp (public, private, protected) được cấp
trước trong class.
•public: Cho phép bên ngoài đối tượng: truy cập và đổi giá trị .
•protected: Không cho phép truy cập/đổi giá trị . Chỉ cho phép
bên trong class và các class con .
•private: Chỉ cho phép truy cập/thay đổi trong phạm vi class của
đối tượng
Tính kế thừa
Một class có thể kế thừa các thuộc tính và hàm từ lớp cha. Lớp
kế thừa được gọi là lớp con. Các đối tượng có thể sử dụng lại các
đặc tính sẵn có mà không cần định nghĩa lại.
Các tính chất của OOP
<?php
class hocsinh{
var $ho;
var $ten;
var $ngaysinh;
var $diemtb;
function hoten() { return $this->ho . " " . $this->ten; }
function tuoi() {
$ns = explode( $this ->ngaysinh );
return date("Y") - $ns[2];
}
}
class hocsinhgioi extends hocsinh{
public $hocbong;
}
$hsg1 = new hocsinhgioi;
$hsg1 ->ho = "Phan thị";
?>
Các tính chất của OOP
Tính trừu tượng
Khi tương tác với đối tượng, chỉ cần quan tâm đến các thuộc
tính, hàm cần thiết. Chi tiết về nội dung không cần chú ý đến.
Nhờ đó giảm phức tạp của giải thuật, nghiệp vụ.
PHP có abstract class và interface để trừu tượng hóa các đối
tượng.
Tính đa hình
Tính đa hình (polymorphism) trong OOP cho phép các class con
có thể viết lại (override) các thuộc tính hoặc hàm từ class cha.
Các class cùng implement một interface nhưng chúng có cách
thức thực hiện khác nhau cho các method của interface đó.
Qua đó cùng 1 phương thức sẽ cho kết quả khác nhau khi được
gọi bởi các đối tượng thuộc lớp khác nhau.
abstract class<class_name>{
[properties … ]
abstract function func_name(…);
public function func_name(…);
}
Lớp trừu tượng
 Khái niệm
 Lớp trừu tượng là một lớp cha cho tất cả các lớp có cùng
bản chất. Do đó mỗi lớp dẫn xuất (lớp con) chỉ có thể kế
thừa từ một lớp trừu tượng.
 Lớp trừu tượng không cho phép tạo instance (không thể tạo
được các đối tượng thuộc lớp đó).
 Cú pháp khai báo lớp trừu tượng
abstract class Person
{
protected $ten;
protected $cmnd;
protected $namsinh;
abstract public function showInfo();
}
// Lớp này sai vì chưa viết lại hàm showInfo
class CongNhan extends Person
{
}
// Lớp này đúng vì ta đã khai báo, viết lại
// đầy đủ các hàm abstract
class SinhVien extends Person
{
public function showInfo(){
}
}
interface class <class_name>{
…
}
Lớp interface
 Khái niệm
•Interface không phải là 1 lớp. Nó được mô tả như là 1 bản thiết kế template
cho các class có chung cách thức hoạt động.
•Vì không phải là 1 lớp nên không thể định nghĩa các thuộc tính, khởi tạo đối
tượng mà chỉ khai báo các phương thức.
 Cú pháp khai báo lớp interface
interface A {
public function funcA();
}
interface B extends A
{
public function funcB();
}
// Lớp này đúng vì nó khai báo đầy
// đủ các hàm trong A và B
class C implements B
{
public function funcA()
{
}
public function funcB()
{
}
}
Tính Đa hình
Khái niệm
• Là sự đa hình của mỗi hành động cụ thể ở những đối tượng khác nhau. Ví
dụ hành động ăn ở các loài động vật hoàn toàn khác nhau như: con heo ăn
cám, hổ ăn thịt, con người thì ... ăn hết.
• Đa hình trong lập trình thì được hiểu là Lớp Con sẽ viết lại những phương
thức ở lớp cha (ovewrite).
// Lớp Cha
class DongVat
{
// Động Vật Ăn
public function An()
{
echo 'Động Vật Đang Ăn';
}
}
// Lớp Con
class ConHeo extends DongVat
{
public function An()
{
parent::An();
echo 'Con Heo Đang Ăn Cám';
}
}
// Khai Báo Lớp on
$conheo = new ConHeo();
// Gọi Hàm Ăn Trong Lớp ConHeo
$conheo->An();

More Related Content

What's hot

Tai lieu huong_dan_ve_lap_trinh_php_7512
Tai lieu huong_dan_ve_lap_trinh_php_7512Tai lieu huong_dan_ve_lap_trinh_php_7512
Tai lieu huong_dan_ve_lap_trinh_php_7512lekytho
 
Các hàm thông dụng có sẵn trong php
Các hàm thông dụng có sẵn trong phpCác hàm thông dụng có sẵn trong php
Các hàm thông dụng có sẵn trong phpSon Nguyen
 
Dữ liệu mảng (array)
Dữ liệu mảng (array)Dữ liệu mảng (array)
Dữ liệu mảng (array)Son Nguyen
 
Các cấu trúc lệnh trong C
Các cấu trúc lệnh trong CCác cấu trúc lệnh trong C
Các cấu trúc lệnh trong Cpnanhvn
 
Lập trình C cơ bản cho vi điều khiển
Lập trình C cơ bản cho vi điều khiểnLập trình C cơ bản cho vi điều khiển
Lập trình C cơ bản cho vi điều khiểnMr Giap
 
Các kiểu dữ liệu (data type)
Các kiểu dữ liệu (data type)Các kiểu dữ liệu (data type)
Các kiểu dữ liệu (data type)Son Nguyen
 
Class và object (lớp và đối tượng
Class và object (lớp và đối tượngClass và object (lớp và đối tượng
Class và object (lớp và đối tượngSon Nguyen
 
LAP TRINH C - SESSION 2
LAP TRINH C - SESSION 2LAP TRINH C - SESSION 2
LAP TRINH C - SESSION 2pnanhvn
 
Hàm và Chuỗi
Hàm và ChuỗiHàm và Chuỗi
Hàm và Chuỗipnanhvn
 
Giao trinh bai tap c va c++
Giao trinh bai tap c va c++Giao trinh bai tap c va c++
Giao trinh bai tap c va c++Congdat Le
 
Lập trình c++ có lời giải 2
Lập trình c++ có lời giải 2Lập trình c++ có lời giải 2
Lập trình c++ có lời giải 2Minh Ngoc Tran
 
Phong cach lap trinh c++
Phong cach lap trinh c++Phong cach lap trinh c++
Phong cach lap trinh c++ptquang160492
 
Các ví dụ về cách viết và sử dụng chương trình con
Các ví dụ về cách viết và sử dụng chương trình conCác ví dụ về cách viết và sử dụng chương trình con
Các ví dụ về cách viết và sử dụng chương trình conNhungoc Phamhai
 
Giao trinh c++ aptech
Giao trinh c++ aptechGiao trinh c++ aptech
Giao trinh c++ aptechTấn Nhật
 
Bai tap lap trinh c
Bai tap lap trinh  cBai tap lap trinh  c
Bai tap lap trinh ctiểu minh
 

What's hot (18)

Tai lieu huong_dan_ve_lap_trinh_php_7512
Tai lieu huong_dan_ve_lap_trinh_php_7512Tai lieu huong_dan_ve_lap_trinh_php_7512
Tai lieu huong_dan_ve_lap_trinh_php_7512
 
Các hàm thông dụng có sẵn trong php
Các hàm thông dụng có sẵn trong phpCác hàm thông dụng có sẵn trong php
Các hàm thông dụng có sẵn trong php
 
Dữ liệu mảng (array)
Dữ liệu mảng (array)Dữ liệu mảng (array)
Dữ liệu mảng (array)
 
Các cấu trúc lệnh trong C
Các cấu trúc lệnh trong CCác cấu trúc lệnh trong C
Các cấu trúc lệnh trong C
 
Lập trình C cơ bản cho vi điều khiển
Lập trình C cơ bản cho vi điều khiểnLập trình C cơ bản cho vi điều khiển
Lập trình C cơ bản cho vi điều khiển
 
Các kiểu dữ liệu (data type)
Các kiểu dữ liệu (data type)Các kiểu dữ liệu (data type)
Các kiểu dữ liệu (data type)
 
C đến C++ phần 1
C đến C++ phần 1C đến C++ phần 1
C đến C++ phần 1
 
Class và object (lớp và đối tượng
Class và object (lớp và đối tượngClass và object (lớp và đối tượng
Class và object (lớp và đối tượng
 
LAP TRINH C - SESSION 2
LAP TRINH C - SESSION 2LAP TRINH C - SESSION 2
LAP TRINH C - SESSION 2
 
ShellProgramming
ShellProgrammingShellProgramming
ShellProgramming
 
Hàm và Chuỗi
Hàm và ChuỗiHàm và Chuỗi
Hàm và Chuỗi
 
Giao trinh bai tap c va c++
Giao trinh bai tap c va c++Giao trinh bai tap c va c++
Giao trinh bai tap c va c++
 
Lập trình c++ có lời giải 2
Lập trình c++ có lời giải 2Lập trình c++ có lời giải 2
Lập trình c++ có lời giải 2
 
Phong cach lap trinh c++
Phong cach lap trinh c++Phong cach lap trinh c++
Phong cach lap trinh c++
 
Các ví dụ về cách viết và sử dụng chương trình con
Các ví dụ về cách viết và sử dụng chương trình conCác ví dụ về cách viết và sử dụng chương trình con
Các ví dụ về cách viết và sử dụng chương trình con
 
Giao trinh c++ aptech
Giao trinh c++ aptechGiao trinh c++ aptech
Giao trinh c++ aptech
 
Bai tap lap trinh c
Bai tap lap trinh  cBai tap lap trinh  c
Bai tap lap trinh c
 
Giáo trình MSWLOGO Lớp 5
Giáo trình MSWLOGO Lớp 5Giáo trình MSWLOGO Lớp 5
Giáo trình MSWLOGO Lớp 5
 

Similar to Lesson 2 lý thuyết

Thdc3 Lap Trinh C
Thdc3 Lap Trinh CThdc3 Lap Trinh C
Thdc3 Lap Trinh Cquyloc
 
PHP.pptxPHP.pptxPHP.pptxPHP.pptxPHP.pptx
PHP.pptxPHP.pptxPHP.pptxPHP.pptxPHP.pptxPHP.pptxPHP.pptxPHP.pptxPHP.pptxPHP.pptx
PHP.pptxPHP.pptxPHP.pptxPHP.pptxPHP.pptxKhnhVi24
 
Bai giangtrenlop
Bai giangtrenlopBai giangtrenlop
Bai giangtrenlopHồ Lợi
 
Bài 2: Biến và toán tử - Giáo trình FPT
Bài 2: Biến và toán tử - Giáo trình FPTBài 2: Biến và toán tử - Giáo trình FPT
Bài 2: Biến và toán tử - Giáo trình FPTMasterCode.vn
 
LP_TRINH_HP_NG_MIPS_Mc_dich.pdf
LP_TRINH_HP_NG_MIPS_Mc_dich.pdfLP_TRINH_HP_NG_MIPS_Mc_dich.pdf
LP_TRINH_HP_NG_MIPS_Mc_dich.pdfChuong
 
1 Gioi Thieu Chung
1 Gioi Thieu Chung1 Gioi Thieu Chung
1 Gioi Thieu ChungCuong
 
Giao trinh thiet ke web bai 4 - php
Giao trinh thiet ke web   bai 4 - phpGiao trinh thiet ke web   bai 4 - php
Giao trinh thiet ke web bai 4 - phpcashdeptrai
 
Hướng dẫn lập trình web với PHP - Ngày 6
Hướng dẫn lập trình web với PHP - Ngày 6Hướng dẫn lập trình web với PHP - Ngày 6
Hướng dẫn lập trình web với PHP - Ngày 6Nguyễn Tuấn Quỳnh
 
Thiet Ke Co So Du Lieu2
Thiet Ke Co So Du Lieu2Thiet Ke Co So Du Lieu2
Thiet Ke Co So Du Lieu2Vo Oanh
 
Ngon ngu c theo chuan ansi
Ngon ngu c theo chuan ansiNgon ngu c theo chuan ansi
Ngon ngu c theo chuan ansiHuynh MVT
 
Lec3. Ham.pdf
Lec3. Ham.pdfLec3. Ham.pdf
Lec3. Ham.pdfKinHongnh
 

Similar to Lesson 2 lý thuyết (20)

C3-Javascript.pdf
C3-Javascript.pdfC3-Javascript.pdf
C3-Javascript.pdf
 
Kiem tra javascript
Kiem tra javascriptKiem tra javascript
Kiem tra javascript
 
Thdc3 Lap Trinh C
Thdc3 Lap Trinh CThdc3 Lap Trinh C
Thdc3 Lap Trinh C
 
PHP.pptxPHP.pptxPHP.pptxPHP.pptxPHP.pptx
PHP.pptxPHP.pptxPHP.pptxPHP.pptxPHP.pptxPHP.pptxPHP.pptxPHP.pptxPHP.pptxPHP.pptx
PHP.pptxPHP.pptxPHP.pptxPHP.pptxPHP.pptx
 
Bai giangtrenlop
Bai giangtrenlopBai giangtrenlop
Bai giangtrenlop
 
Bài 2: Biến và toán tử - Giáo trình FPT
Bài 2: Biến và toán tử - Giáo trình FPTBài 2: Biến và toán tử - Giáo trình FPT
Bài 2: Biến và toán tử - Giáo trình FPT
 
PHP Regular expressions
PHP Regular expressionsPHP Regular expressions
PHP Regular expressions
 
temp.pdf
temp.pdftemp.pdf
temp.pdf
 
Kiem tra Javasrctip
Kiem tra JavasrctipKiem tra Javasrctip
Kiem tra Javasrctip
 
Chuong 2
Chuong 2Chuong 2
Chuong 2
 
Tin học lớp 8
Tin học lớp 8Tin học lớp 8
Tin học lớp 8
 
LP_TRINH_HP_NG_MIPS_Mc_dich.pdf
LP_TRINH_HP_NG_MIPS_Mc_dich.pdfLP_TRINH_HP_NG_MIPS_Mc_dich.pdf
LP_TRINH_HP_NG_MIPS_Mc_dich.pdf
 
Hop ngu mips
Hop ngu mipsHop ngu mips
Hop ngu mips
 
1 Gioi Thieu Chung
1 Gioi Thieu Chung1 Gioi Thieu Chung
1 Gioi Thieu Chung
 
Giao trinh thiet ke web bai 4 - php
Giao trinh thiet ke web   bai 4 - phpGiao trinh thiet ke web   bai 4 - php
Giao trinh thiet ke web bai 4 - php
 
Hướng dẫn lập trình web với PHP - Ngày 6
Hướng dẫn lập trình web với PHP - Ngày 6Hướng dẫn lập trình web với PHP - Ngày 6
Hướng dẫn lập trình web với PHP - Ngày 6
 
Thiet Ke Co So Du Lieu2
Thiet Ke Co So Du Lieu2Thiet Ke Co So Du Lieu2
Thiet Ke Co So Du Lieu2
 
Kế toán Excel
Kế toán ExcelKế toán Excel
Kế toán Excel
 
Ngon ngu c theo chuan ansi
Ngon ngu c theo chuan ansiNgon ngu c theo chuan ansi
Ngon ngu c theo chuan ansi
 
Lec3. Ham.pdf
Lec3. Ham.pdfLec3. Ham.pdf
Lec3. Ham.pdf
 

More from Vietfreelancer Expert (11)

Lesson 1 lý thuyết
Lesson 1 lý thuyếtLesson 1 lý thuyết
Lesson 1 lý thuyết
 
Lession 10
Lession 10Lession 10
Lession 10
 
Lession 9
Lession 9Lession 9
Lession 9
 
Lession 8
Lession 8Lession 8
Lession 8
 
Lession 7
Lession 7Lession 7
Lession 7
 
Lession 6
Lession 6Lession 6
Lession 6
 
Lession 5
Lession 5Lession 5
Lession 5
 
Lession 4
Lession 4Lession 4
Lession 4
 
Lession 3
Lession 3Lession 3
Lession 3
 
Lession 2
Lession 2Lession 2
Lession 2
 
Lesson 1
Lesson 1Lesson 1
Lesson 1
 

Recently uploaded

Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXH
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXHTư tưởng Hồ Chí Minh về độc lập dân tộc và CNXH
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXHThaoPhuong154017
 
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Nguyen Thanh Tu Collection
 
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh líKiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh líDr K-OGN
 
Sơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdfSơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdftohoanggiabao81
 
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhhôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhhvanhathvc
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
Hệ phương trình tuyến tính và các ứng dụng trong kinh tế
Hệ phương trình tuyến tính và các ứng dụng trong kinh tếHệ phương trình tuyến tính và các ứng dụng trong kinh tế
Hệ phương trình tuyến tính và các ứng dụng trong kinh tếngTonH1
 
Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...
Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...
Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...Học viện Kstudy
 
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...Nguyen Thanh Tu Collection
 
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Nguyen Thanh Tu Collection
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
Bai 1 cong bo mot cong trinh nghien cuu khoa hoc
Bai 1 cong bo mot cong trinh nghien cuu khoa hocBai 1 cong bo mot cong trinh nghien cuu khoa hoc
Bai 1 cong bo mot cong trinh nghien cuu khoa hocVnPhan58
 
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...Nguyen Thanh Tu Collection
 
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfChuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfhoangtuansinh1
 
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...Nguyen Thanh Tu Collection
 
Ma trận - định thức và các ứng dụng trong kinh tế
Ma trận - định thức và các ứng dụng trong kinh tếMa trận - định thức và các ứng dụng trong kinh tế
Ma trận - định thức và các ứng dụng trong kinh tếngTonH1
 
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...ThunTrn734461
 
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxChàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxendkay31
 
Trích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docxTrích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docxnhungdt08102004
 

Recently uploaded (20)

Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXH
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXHTư tưởng Hồ Chí Minh về độc lập dân tộc và CNXH
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXH
 
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
 
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh líKiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
 
Sơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdfSơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdf
 
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhhôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
Hệ phương trình tuyến tính và các ứng dụng trong kinh tế
Hệ phương trình tuyến tính và các ứng dụng trong kinh tếHệ phương trình tuyến tính và các ứng dụng trong kinh tế
Hệ phương trình tuyến tính và các ứng dụng trong kinh tế
 
Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...
Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...
Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...
 
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
 
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
Bai 1 cong bo mot cong trinh nghien cuu khoa hoc
Bai 1 cong bo mot cong trinh nghien cuu khoa hocBai 1 cong bo mot cong trinh nghien cuu khoa hoc
Bai 1 cong bo mot cong trinh nghien cuu khoa hoc
 
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
 
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfChuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
 
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
 
Ma trận - định thức và các ứng dụng trong kinh tế
Ma trận - định thức và các ứng dụng trong kinh tếMa trận - định thức và các ứng dụng trong kinh tế
Ma trận - định thức và các ứng dụng trong kinh tế
 
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
 
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxChàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
 
Trích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docxTrích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docx
 

Lesson 2 lý thuyết

  • 1. PHP Lesson 2 Pasha Mohamed VDTQT-Hutech
  • 2. Agenda Ngôn ngữ lập trình PHP - Giới thiệu và tổng quan về PHP: 1. Cấu trúc PHP 2. Kiểu dữ liệu, hằng và biến 3. Các phép toán trong PHP 4. Các cấu trúc điều khiển 5. Hàm trong PHP 6. Mảng (array) - Lập trình hướng đối tượng trong PHP.
  • 3. Giới Thiệu • PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely- used open source general-purpose scripting language that is especially suited for web development and can be embedded into HTML (ref: http://php.net/manual/en/intro-whatis.php) • PHP có cú pháp ngôn ngữ tương tự ngôn ngữ C & Perl • Tập tin PHP có phần mở rộng là .php • Là ngôn ngữ server-side script, tương tự như JSP, ASP.Net… thực thi ở phía WebServer. (current 8.1, 7 is most used)
  • 4. PHƯƠNG ÁN 1 https://www.apachefriends.org/download.html PHƯƠNG ÁN 2 http://www.wampserver.com/en/ PHƯƠNG ÁN 3 Cấu hình manual Yêu cầu cần thiết để xây dựng ứng dụng bằng ngôn ngữ PHP?
  • 5. Các hệ thống xây dựng bằng PHP  Loại hệ thống chuyên về Quản trị nội dung, cổng thông tin (CMS – Content Management System / Portals)
  • 6. Các hệ thống xây dựng bằng PHP  Loại hệ thống chuyên về Diễn đàn (Forum)  SMF  PunBB  Phorum  AEF  Vanilla  UseBB  miniBB  XMB  …
  • 7. Các hệ thống xây dựng bằng PHP  Loại hệ thống chuyên về Blog: WordPress, Textpattern, Nucleus CMS, LifeType, Serendipity, Dotclear, Zomplog, FlatPress, NibbleBlog, Croogo, …  Loại hệ thống về thương mại điện tử (eCommerce) Magento, Zen Cart, OpenCart, osCommerce, PrestaShop, AlegroCart, Freeway, eclime, osCSS, TomatoCar, …  Loại hệ thống về đào tạo trực tuyến (LCMS–Learning Course Management System) Moodle, ATutor, eFront, Dokeos, Docebo, Interact, DrupalEd, ILIAS, Open Conference Systems, Open Journal Systems, …
  • 8. Cơ chế thực thi của PHP 2 www.example.com Webserver Database Server Disk driver 3 4 5 6 7
  • 9. Ví dụ “Hello world” Sử dụng phương thức echo "Nội dung" để xuất thông tin lên trình duyệt. Cấu trúc PHP
  • 10. Cú pháp và quy ước  Các phương pháp nhúng code PHP trong trang HTML:  Quy ước viết code PHP tương tự ngôn ngữ C: kết thúc câu lệnh dùng dấu chấm phẩy “;” , phân biệt chữ hoa, thường,…  Ghi chú trong PHP: o // ghi chú đơn o /* đoạn ghi chú */ Thẻ mở Thẻ đóng Ghi chú <? ?> Cần cấu hình server cho phép hỗ trợ shorthand-support  ít dùng <?php ?> Thường dùng <script language="php"> <script> ít dùng
  • 11.  Kiểu dữ liệu trong PHP khá đa dạng, được chia thành 2 nhóm chính sau:  Scalar (cơ bản): boolean, int, float, string, NULL..  Composite (đa hợp): array, object,..  Kiểu dữ liệu trong PHP được khởi gán và chuyển đổi kiểu một cách tự động trong quá trình khai báo hằng và biến.  Việc ép kiểu dữ liệu trong PHP có thể thực hiện theo cách sau:  Tên_Biến = (Data_type) Tên_Biến;  settype($Tên_Biến, "Data_type"); Ví dụ: <?php $So_thuc = 10.75; echo (int)$So_thuc; // output: 10 ?> Kiểu dữ liệu, hằng và biến
  • 12. . Hàm hàm liên quan đến kiểu dữ liệu  Sử dụng các hàm cơ bản sau để kiểm tra kiểu dữ liệu https://www.php.net/manual gettype is_string isset is_integer is_array unset is_double is_object empty Ví dụ: $var = "test"; if (isset($var)) echo "Variable is Set"; if (empty($var)) echo "Variable is Empty"; Kiểu dữ liệu, hằng và biến
  • 13. Khai báo hằng và biến  Cú pháp khai báo hằng: define('Tên_hằng', Giá_trị);  Cú pháp khai báo biến: $Tên_biến = Giá_trị;  Lưu ý:  Tên biến có thể bao gồm các Ký tự (A..Z, a..z), Ký số (0..9), _, $. (phân biệt chữ hoa, chữ thường)  Không khai báo kiểu dữ liệu (kiểu dữ liệu tự động được khởi tạo ở lần đầu tiên khi gán giá trị cho biến).  Tên biến không được bắt dầu bằng ký số (0..9).
  • 14. Khai báo hằng và biến <?php define(‘Ngan98’, 98); echo Ngan98; // xuất ra màn hình giá trị của hằng ?> <?php $sinhvien = ''; //đúng $_sinh_vien = ''; //đúng $sinh_vien90 = ''; //đúng $90sinhvien = ''; //sai ?>
  • 15. Toán tử cơ bản Loại Toán tử Toán học + - * / % ++ -- So sánh < > <= >= != == === !== Luận lý && || ?: , Xử lý bit ! ~ << >> >>> AND OR NOT XOR Gán = += -= *= /= %= >>= <<= &= |= ^= .= Điều kiện ? :
  • 16. Toán tử toán học Toán tử Miêu tả Ví dụ + Cộng hai toán hạng A + B kết quả là 30 - Trừ toán hạng thứ hai từ toán hạng đầu A - B kết quả là -10 * Nhân hai toán hạng A * B kết quả là 200 / Phép chia B / A kết quả là 2 % Phép lấy số dư B % A kết quả là 0 ++ Toán tử tăng, tăng giá trị toán hạng thêm một đơn vị A++ kết quả là 11 -- Toán tử giảm, giảm giá trị toán hạng đi một đơn vị A-- kết quả là 9 Giả sử biến A giữ giá trị 10, biến B giữ 20 thì:
  • 17. Toán tử so sánh Toán tử Miêu tả Ví dụ == Kiểm tra nếu 2 toán hạng bằng nhau hay không. Nếu bằng thì điều kiện là true. (A == B) là không true. != Kiểm tra 2 toán hạng có giá trị khác nhau hay không. Nếu không bằng thì điều kiện là true. (A != B) là true. > Kiểm tra nếu toán hạng bên trái có giá trị lớn hơn toán hạng bên phải hay không. Nếu lớn hơn thì điều kiện là true. (A > B) là không true. < Kiểm tra nếu toán hạng bên trái nhỏ hơn toán hạng bên phải hay không. Nếu nhỏ hơn thì là true. (A < B) là true. >= Kiểm tra nếu toán hạng bên trái có giá trị lớn hơn hoặc bằng giá trị của toán hạng bên phải hay không. Nếu đúng là true. (A >= B) là không true. <= Kiểm tra nếu toán hạng bên trái có giá trị nhỏ hơn hoặc bằng toán hạng bên phải hay không. Nếu đúng là true. (A <= B) là true. Giả sử biến A giữ giá trị 10, biến B giữ 20 thì:
  • 18. Toán tử logic Toán tử Miêu tả Ví dụ and Được gọi là toán tử Logic AND. Nếu cả hai toán hạng là true thì điều kiện trở thành true (A and B) là true. or Được gọi là toán tử Logic OR. Nếu một trong hai toán hạng là đúng thì điều kiện trở thành true (A or B) là true. && Được gọi là toán tử Logic AND. Nếu cả hai toán hạng là true thì điều kiện trở thành true (A && B) là true. || Được gọi là toán tử Logic OR. Nếu một trong hai toán hạng là đúng thì điều kiện trở thành true (A || B) là true. ! Được gọi là toán tử Logic NOT. Sử dụng để đảo ngược trạng thái logic của toán hạng. Nếu điều kiện là true thì toán tử Logic NOT sẽ cho kết quả là false !(A && B) là false.
  • 19. Toán tử gán Toán tử Miêu tả Ví dụ = Toán tử gán đơn giản. Gán giá trị toán hạng bên phải cho toán hạng trái C = A + B sẽ gán giá trị của A + B vào trong C += Thêm giá trị toán hạng phải tới toán hạng trái và gán giá trị đó cho toán hạng trái C += A là tương đương với C = C + A -= Trừ đi giá trị toán hạng phải từ toán hạng trái và gán giá trị này cho toán hạng trái C -= A là tương đương với C = C - A *= Nhân giá trị toán hạng phải với toán hạng trái và gán giá trị này cho toán hạng trái C *= A là tương đương với C = C * A /= Chia toán hạng trái cho toán hạng phải và gán giá trị này cho toán hạng trái C /= A là tương đương với C = C / A
  • 20. Toán tử điều kiện Toán tử Miêu tả Ví dụ ? : Biểu thức điều kiện Nếu điều kiện là true ? Thì giá trị X : Nếu không thì giá trị Y
  • 21. Các hàm liên quan đến số abs pow decbin srand(seed) ceil sqrt bindec rand floor log dechex rand(min, max) round log10 hexdec …  Ví dụ: rand (tối thiểu, tối đa); <? php echo (rand (10, 30). "<br>"); //ngẫu nhiên từ 10->30 echo (rand (1, 1000000). "<br>"); echo (rand ()); //ngẫu nhiên bất kì ?>
  • 22. Ví dụ toán tử số học  Cho biết kết quả của các ví dụ sau:  Ví dụ 1: <html> <head><title>Toán tử số học</title><head> <body> <?php $a = 19; $b = 24; $c = $a + $b; echo "Kết quả phép cộng: $c <br/>"; $c = $a - $b; echo "Kết quả phép trừ: $c <br/>"; $c = $a * $b; echo "Kết quả phép nhân: $c <br/>"; $c = $a / $b; echo "Kết quả phép chia: $c <br/>"; $c = $a % $b; echo "Phần dư phép chia: $c <br/>"; $c = $a++; echo "Thêm một vào $c: $a <br/>"; $c = $a--; echo "Giảm $a đi 1: $c <br/>"; ?> </body> </html>
  • 23. Các hàm liên quan đến chuỗi  Toán tử nối chuỗi: dùng dấu chấm “.” $str = "Hello"." World"; // $str = “Hello World”  Thường thì bạn có 4 cách để có được chuỗi ký tự cần thiết:  Sử dụng cặp ký tự nháy đơn '.  Sử dụng cặp ký tự nháy kép ".  Sử dụng cú pháp heredoc.  Sử dụng cú pháp nowdoc.  Hàm xử lý chuỗi thông dụng printf trim strtolower str_pad str_replace strtoupper strlen substr strcasecmp …
  • 24. Biểu diễn chuỗi theo nháy đơn '  Đây là cách đơn giản để có được chuỗi ký tự. Chuỗi là các ký tự nằm giữa cặp nháy đơn ‘ '. Khi dùng kiểu này muốn chứa ' thì dùng ', muốn chứa thì dùng .  Ví dụ: <?php $value = 'Abc'; echo 'đây là một chuỗi ký tự'; echo 'Chuỗi này có ký tự ' bên trong'; echo 'Kiểu này không chèn biến $value vào chuỗi'; ?>
  • 25. Biểu diễn chuỗi theo nháy kép "  Chuỗi là các ký tự nằm giữa cặp nháy kép “ ". Khi dùng chuỗi này Php sẽ tự động chuyển ký hiệu một số ký tự đặc biệt. Ví dụ: n là LF - dòng mới, r là CR - đầu dòng, t là ký tự tab, $ là ký tự $, " là ký tự ", là ký tự ...  Ví dụ: <?php $doing = 'learning PHP'; echo "I am $doing"; ?>
  • 26. Biểu diễn chuỗi theo Heredoc  Nếu hai cách trên vẫn thấy gò bó trong việc sử dụng chuỗi thì bạn có thể tham khảo Heredoc, nó vẫn tận dụng được cách dùng "" tự chèn giá trị biến nhưng thoải mái hơn khi sử dụng các ký tự đặc biệt.  Heredoc bao giờ cũng bắt đầu bằng <<<, tiếp theo là một tên đinh danh do bạn đặt rồi phải xuống dòng ngay, và cuối cùng phải kết thúc bằng định danh; ở một dòng mới.
  • 27. Ví dụ về chuỗi  Ví dụ sau tôi chọn định danh có tên là CONMEO:  Ví dụ : <? $congi = 'mèo'; $caygi = 'cau'; $str = <<<CONMEO Con $congi mà trèo cây $caygi, Hỏi thăm chú chuột đi đâu vắng nhà. Chú chuột đi chợ đường xa. Mua mắm mua muối giỗ cha chú $congi. CONMEO; echo $str; ?> Kết quả: Con mèo mà trèo cây cau, Hỏi thăm chú chuột đi đâu vắng nhà. Chú chuột đi chợ đường xa. Mua mắm mua muối giỗ cha chú mèo.
  • 28. Biểu diễn chuỗi theo Nowdoc  Cách này khá giông với Heredoc, nhưng bắt đầu bằng <<<'Định-Danh' (có cặp '' - heredoc thì không có). Nowdoc sẽ không phân tích biến đề chèn vào chuỗi.  Trở lại bài thơ trên nếu dùng nowdoc
  • 29. Ví dụ về chuỗi  Ví dụ sau tôi chọn định danh có tên là CONMEO: <? $congi = 'mèo'; $caygi = 'cau'; $str = <<<'CONMEO' Con $congi mà trèo cây $caygi, Hỏi thăm chú chuột đi đâu vắng nhà. Chú chuột đi chợ đường xa. Mua mắm mua muối giỗ cha chú $congi. CONMEO; echo $str; ?> Kết quả: Con $congi mà trèo cây $caygi, Hỏi thăm chú chuột đi đâu vắng nhà. Chú chuột đi chợ đường xa. Mua mắm mua muối giỗ cha chú $congi.
  • 30. Cấu trúc lặp If .. Else .. Cấu trúc điều kiện Switch .. Case .. For .. While .. Do .. While Tham khảo thêm: foreach, break, continue Các cấu trúc điều khiển
  • 31. Ví dụ cấu trúc điều khiển $so_can_kiem_tra = 12; $so_du = $so_can_kiem_tra % 2; if ($so_du == 0){ echo 'Số '.$so_can_kiem_tra.' Là Số Chẵn'; } <?php $colors = array("red", "green", "blue", "yellow"); foreach ($colors as $value) { echo "$value <br>"; //line break } ?> for ($i = 0; $i < 10; $i++){ echo $i . ' - '; }
  • 32. Khai báo hàm function functionName ([parameter1]...[,parameterN]) { statement[s] ; [return ….. ;] } Trong đó:  functionName: tên hàm  parameter: danh sách tham số  return: giá trị hàm trả về nếu có
  • 33. Khai báo hàm  Ví dụ: xây dựng hàm tính tổng $so1 = 12; $so2 = 13; echo tinhtong($so1, $so2); function tinhtong($a, $b) { return $a + $b; }
  • 34. Hàm – phạm vi biến  Ví dụ: cho biết kết quả của đoạn lệnh sau // Biến toàn cục $bien_toan_cuc = 12; function kiem_tra() { // Biến cục bộ $bien_cuc_bo = 13; // Lấy biến toàn cục global $bien_toan_cuc; // Lấy số dư biến cục bộ chia cho biến toàn cục và // kiểm trả về true nếu số dư = 0, ngược lại trả về false if ($bien_cuc_bo % $bien_toan_cuc){ return true; } else{ return false; } } Dùng từ khoá global để xác định phạm vi biến toàn cục
  • 35. Khai báo mảng  Mảng trong PHP có thể được khai báo theo 2 cách như sau:  NumericArray (Mảng chỉ số là số): Mảng dạng số là mảng mà mỗi phần tử của nó có một chỉ số là số nguyên. Một biến mảng dạng này chỉ số sẽ gán một cách tự động và bắt đầu từ chỉ số là số 0 khi phần tử đầu tiên được thêm vào, cứ thế phần tử thứ 2 thêm vào mảng sẽ có chỉ số là 1 Phần tử đầu tiên trong mảng có chỉ số index = 0 <?php $names = ["An", "Minh", "Long"]; // khởi tạo mảng $name, đưa vào nó 3 phần tử var_export($names); // export biến mảng Output: array ( 0 => 'An', 1 => 'Minh', 2 => 'Long', )
  • 36. Khai báo mảng  Mảng trong PHP có thể được khai báo theo 2 cách như sau:  Associative Array (Mảng kết hợp): Mảnh kết hợp này thì tên chỉ số là một giá trị nào đó do bạn gán vào, có thể là một string hay một số ... <?php $ngay_thu = [ 'Mon' => "Thứ Hai", 'Tue' => "Thứ Ba", 'Wed' => "Thứ Tư", 'Thu' => "Thứ Năm" ]; foreach ($ngay_thu as $k => $v) echo "$k ($v)", PHP_EOL; ?>
  • 37. Các hàm liên quan đến mảng • var_dump ($array) : xuất nội dung thông tin mảng • is_array(array) : kiểm tra mảng • count(array) : số lượng phần tử • min(array) : phần tử nhỏ nhất trong mảng • max(array) : phần tử lớn nhất trong mảng • reset(array) : khởi tạo lại mảng • array_push(array, elements) : thêm phần tử cuối mảng • array_pop(array) : lấy phần tử cuối mảng • array_unshift(array, elements) : thêm phần tử đầu mảng • array_shift(array) : lấy phần tử đầu mảng • array_merge(array, array) : trộn 2 mảng • shuffle(array) : sắp xếp mảng ngẫu nhiên • array_reverse : đảo mảng • sort(array, flag) : sắp xếp mảng
  • 38. OOP với PHP Lập trình hướng đối tượng (object-oriented programming gọi tắt là OOP ) là cách thức lập trình hiện đại, có nhiều ưu điểm trong việc phát triển project. Với OOP , các thông tin cần xử lý sẽ được diễn tả thành các đối tượng. Như mỗi sản phẩm, mỗi tin tức , mỗi nhà sản xuất, mỗi user… là mỗi đối tượng. Trong 1 đối tượng sẽ có nhiều thông tin (properties), nhiều hàm(methods) được khai báo, tùy nhu cầu nghiệp vụ và cách bạn tổ chức.
  • 39. OOP với PHP Class trong OOP Trong OOP, bạn sẽ khai báo ra nhiều class, mỗi class đặt trong dấu { } . Bên trong là các biến và các hàm trong class. Các biến và hàm khai báo ở đây có tầ, vực sử dụng chỉ ở trong class . Class là khuôn mẫu để theo đó mà các đối tượng được tạo ra. Ví dụ trước khi tạo đối tượng sản phẩm, bạn cần tạo class có tên sanpham. Trong class này bạn khai báo có tênsp, giásp, hìnhsp…thì các đối tượng bạn khai báo sau này dựa trên class sanpham sẽ có các thông tin tênsp, giásp, hìnhsp <?php class khachhang{ var $hoten; var $namsinh; function showhoten() { return $this->hoten; } } $kh1 = new khachhang; $kh1->hoten =“Nguyen Van A"; $kh1->namsinh = 1980; echo "<h4>Họ tên: ", $kh1->showhoten(), "</h4>"; ?>
  • 40. OOP với PHP Constructor của class Khi làm việc với OOP trong PHP, bạn rất thường làm việc với một hàm đặc biệt, đó là hàm Constructor – hàm tự động chạy khi 1 đối tượng được tạo từ class. Trong mỗi class, hàm Contructor có tên là __construct. Trong hàm này, bạn sẽ thường viết code khởi tạo giá trị cho các biến, kết nối database, kiểm tra quyền của user… Hàm __construct có thể dùng nhiều tham số nếu muốn. Destructor của class Destructor là hàm trong class sẽ tự động chạy khi 1 đối tượng bị hủy (khi trang web kết thúc hoặc bạn dùng hàm unset để hủy đối tượng)
  • 41. Các tính chất của OOP
  • 42. Các tính chất của OOP Tính đóng gói Các thuộc tính và hàm của đối tượng được đóng gói lại, bên ngoài đối tượng không nhìn thấy mà chỉ có thể truy cập theo quyền truy cập phù hợp (public, private, protected) được cấp trước trong class. •public: Cho phép bên ngoài đối tượng: truy cập và đổi giá trị . •protected: Không cho phép truy cập/đổi giá trị . Chỉ cho phép bên trong class và các class con . •private: Chỉ cho phép truy cập/thay đổi trong phạm vi class của đối tượng Tính kế thừa Một class có thể kế thừa các thuộc tính và hàm từ lớp cha. Lớp kế thừa được gọi là lớp con. Các đối tượng có thể sử dụng lại các đặc tính sẵn có mà không cần định nghĩa lại.
  • 43. Các tính chất của OOP <?php class hocsinh{ var $ho; var $ten; var $ngaysinh; var $diemtb; function hoten() { return $this->ho . " " . $this->ten; } function tuoi() { $ns = explode( $this ->ngaysinh ); return date("Y") - $ns[2]; } } class hocsinhgioi extends hocsinh{ public $hocbong; } $hsg1 = new hocsinhgioi; $hsg1 ->ho = "Phan thị"; ?>
  • 44. Các tính chất của OOP Tính trừu tượng Khi tương tác với đối tượng, chỉ cần quan tâm đến các thuộc tính, hàm cần thiết. Chi tiết về nội dung không cần chú ý đến. Nhờ đó giảm phức tạp của giải thuật, nghiệp vụ. PHP có abstract class và interface để trừu tượng hóa các đối tượng. Tính đa hình Tính đa hình (polymorphism) trong OOP cho phép các class con có thể viết lại (override) các thuộc tính hoặc hàm từ class cha. Các class cùng implement một interface nhưng chúng có cách thức thực hiện khác nhau cho các method của interface đó. Qua đó cùng 1 phương thức sẽ cho kết quả khác nhau khi được gọi bởi các đối tượng thuộc lớp khác nhau.
  • 45. abstract class<class_name>{ [properties … ] abstract function func_name(…); public function func_name(…); } Lớp trừu tượng  Khái niệm  Lớp trừu tượng là một lớp cha cho tất cả các lớp có cùng bản chất. Do đó mỗi lớp dẫn xuất (lớp con) chỉ có thể kế thừa từ một lớp trừu tượng.  Lớp trừu tượng không cho phép tạo instance (không thể tạo được các đối tượng thuộc lớp đó).  Cú pháp khai báo lớp trừu tượng
  • 46. abstract class Person { protected $ten; protected $cmnd; protected $namsinh; abstract public function showInfo(); } // Lớp này sai vì chưa viết lại hàm showInfo class CongNhan extends Person { } // Lớp này đúng vì ta đã khai báo, viết lại // đầy đủ các hàm abstract class SinhVien extends Person { public function showInfo(){ } }
  • 47. interface class <class_name>{ … } Lớp interface  Khái niệm •Interface không phải là 1 lớp. Nó được mô tả như là 1 bản thiết kế template cho các class có chung cách thức hoạt động. •Vì không phải là 1 lớp nên không thể định nghĩa các thuộc tính, khởi tạo đối tượng mà chỉ khai báo các phương thức.  Cú pháp khai báo lớp interface
  • 48. interface A { public function funcA(); } interface B extends A { public function funcB(); } // Lớp này đúng vì nó khai báo đầy // đủ các hàm trong A và B class C implements B { public function funcA() { } public function funcB() { } }
  • 49. Tính Đa hình Khái niệm • Là sự đa hình của mỗi hành động cụ thể ở những đối tượng khác nhau. Ví dụ hành động ăn ở các loài động vật hoàn toàn khác nhau như: con heo ăn cám, hổ ăn thịt, con người thì ... ăn hết. • Đa hình trong lập trình thì được hiểu là Lớp Con sẽ viết lại những phương thức ở lớp cha (ovewrite).
  • 50. // Lớp Cha class DongVat { // Động Vật Ăn public function An() { echo 'Động Vật Đang Ăn'; } } // Lớp Con class ConHeo extends DongVat { public function An() { parent::An(); echo 'Con Heo Đang Ăn Cám'; } } // Khai Báo Lớp on $conheo = new ConHeo(); // Gọi Hàm Ăn Trong Lớp ConHeo $conheo->An();

Editor's Notes

  1. isset — Determine if a variable is declared and is different than null unset — Unset a given variable
  2. Pow: XOR operator srand — Seed the random number generator rand — Generate a random integer abs — Absolute value echo abs(-5);   // 5 (integer) ceil — Round fractions up floor — Round fractions down round — Rounds a float
  3. https://notepad.ltd/8uuailna Kết quả phép cộng: 43 Kết quả phép trừ: -5 Kết quả phép nhân: 456 Kết quả phép chia: 0.79166666666667 Phần dư phép chia: 19 Thêm một vào 19: 20 Giảm 20 đi 1: 19
  4. Nếu muốn xuất giá trị của biến ra trang web thì sẽ dùng dấu nháy kép. Còn nếu muốn xuất ra các tag HTML, thì sẽ dùng dấu nháy đơn.  Trong dấu nháy đơn chỉ có chuỗi mà thôi thằng Trình-phân-tích-cú pháp nó chả thèm kiểm tra bên trong có biến không đâu. 
  5. Điều đặc biệt của chuỗi "..." là nó tự động chèn giá trị của biến chứa bên trong khai báo chuỗi. Chạy code trên sẽ in ra kết quả: "I am learning PHP"
  6. Điều đặc biệt của chuỗi "..." là nó tự động chèn giá trị của biến chứa bên trong khai báo chuỗi. Chạy code trên sẽ in ra kết quả: "I am learning PHP"
  7. Vòng lặp foreach tự động lặp qua các phần tử trong mảng, nó lặp cho khi nào tới phần tử cuối cùng thì thôi.
  8. /* Mon (Thứ Hai) Tue (Thứ Ba) Wed (Thứ Tư) Thu (Thứ Năm)*/
  9. Abstract Class là "bản thiết kế" cho Class Interface là "bản thiết kế" cho Method: