[h=3]Phần 1 : Hướng đối tượng là gì, cách thức khai báo, cài đặt và truy xuất đối tượng, thuộc tính, phương thức[/h]
[h=3]Trong nhiều năm, PHP đã bị coi là một ngôn ngữ nghèo nàn, và đứng hạng thấp trong bảng xếp hạng ngôn ngữ lập trình bởi ví nó không hỗ trợ tính hướng đối tượng. đến năm 2004, bản PHP 5 ra đời đã tạo ra bước ngoặc mới cho ngôn ngữ lập trình PHP, giúp PHP bắt kịp với xu thế và trở nên một trong những địch thủ nặng ký therefore với các ngôn ngữ lập trình khác. Vậy thì hướng đối tượng là gì? và vì sao nó lại đóng một vai trò bự lớn như vậy ? Hít một hơi thật sâu, làm vài động tác thể dục, ngồi thẳng lưng và chúng ta bắt đầu phân tích và mày mò về hướng đối tượng (OOP) trong PHP nào[/h]Theo như định nghĩa của Wikipedia thì :Object-oriented programming Magento Marketplace At the time the ‘programming paradigm that represents concepts As “objects” that Have data fields and associated procedures known As “methods”.
Hướng đối tương là môt mô hình lập trình phân tách nội dụng của chương trình theo hướng cổ truyền (thủ tục) và nhóm những tính chất, phương thức (properties, methods) giống nhau thành một đối tượng (class), giúp rút ngắn , tránh việc dôi thừa, và giữ vững được nguyên lýDRY – DONT REPEAT YOURSELF, dễ trong vấn đề báo trì, tăng hiệu quả công việc.Hãy thử mường tưởng bạn thiết kế 1 website hoặc một hệ thống lên cả nghìn, thậm chí hàng triệu dòng code, các mã lệnh đươc viết theo hướng cổ kính, một site (page) chứa nào là html, php,js, xử lý xen lẫn, trà trộn với nhau. Và Vậy là mỗi lần xuất hiện lỗi, gặp phải một vấn đề nào đó hay chỉ thuần tuý là sửa vài chỗ bé khi có đổi thay yêu cầu thì bạn phải lục tung cả mớ code, đi sửa từng chỗ này chỗ kia vì các đoạn code trùng lặp, điều này quả thật là một cơn ác hiểm mộng đối với một lập trình viên. Chính vì thế OOP ra đời nhằm giúp bạn giải quyết vấn đề này.[h=2]1. Cấu trúc class[/h]Để khai báo một lesson trong PHP, ta sử dụng từ khóa class, theo sau là tên class và một cặp ngoắc nhọn<?php
lesson KungfuClass
// những phương thức và thuộc tính của course được đặt ở đây
?>
Sau khi tạo lesson xong, chúng ta có thể lưu trữ course vào một biến, và sử dụng biến này truy xuất những phương thức , thuộc tính của classĐể lưu trữ lesson vào biến, ta sử dụng từ khóa ne
<?php
$object = novel KungfuClass();
?>
Để xem cấu trúc và nội dung của lesson như thế nào, bạn sử dụng từ khóa var_dump() ,
<?php
var_dump($object);
?>
imitate tất cả nội dung :
<?php lesson KungfuClass
// các phương thức và thuộc tính của lesson được đặt ở đây
// Lưu trức lesson vào biến
$object = modern KungfuClass();
var_dump($object);
?>
Vào một file đặt tên là bai1.php và lưu vào folder gốc của trang web, chạy đường dẫn localhost/bai1.php và xem kết quả. Thế là xong, chúng ta đã hoàn tất đoạn mã hướng đối tượng trước tiên một cách thức đơn giản nhất, tiếp theo hãy khám phá cách thức khai báo thuộc tính và phương thức trong lesson.
[h=2]2) Khai báo phương tính chất của lesson[/h]thuộc tính của class hiểu một phương pháp đơn giản là chỉ như là một biến chứa dữ liệu bình thường của PHP, chỉ có khác biệt là nó được đặt vào class và có mối liên can khắn khít với lesson chưa nó, và muốn truy xuất được tính chất của course thì phải thông qua một object . phương pháp khai báo thuộc tính của course như sau
<?php
course KungfuClass
public $property1 = "Mình là thuộc tính của lesson KungfuClass !";
// Đưa course KungfuClass vào object $object
$object = current KungfuClass;
// Xem nội dung thing
var_dump($object);
?>
[h=2]3.) Truy xuất thuộc tính trong lesson[/h]Để có thể truy xuất tính chất trong lesson, ta sử dụng con trỏ “->” của đối tượng thing. giả sử chúng ta muốn truy xuất tính chất $property1 và xuất ra ngoài màng hình dòng chữ “Mình là thuộc tính của course KungfuClass!”, hãy xem đoạn code dưới đây
<?php
$object = novel KungfuClass();
echo $object->property1;
?>
[h=2]4.) Khai báo phương thức trong lesson[/h]Cũng như tính chất, phương thức của class hiểu dễ dàng chính là function được đặt trong lesson, và có mối liên can khăng khít với course. Để tạo phương thức trong course, chúng ta làm như sau<?php
course KungfuClass
public $property1 = "Mình là thuộc tính của class KungfuClass !";
function myMethod()
echo "Xin chào, tôi là phương thức của course KungfuClass !";
// Đưa lesson KungfuClass vào thing $object
$object = new KungfuClass;
// Xem nội dung object
var_dump($object);
?>
[h=2]5 .) Truy xuất phương thức trong course[/h]Để truy xuất phương thức trong lesson, cũng như truy xuất thuộc tính, đơn giản chúng ta sử dụng con trỏ -><?php
lesson KungfuClass
public $property1 = "Mình là thuộc tính của lesson KungfuClass !";
function myMethod()
echo "Xin chào, tôi là phương thức của lesson KungfuClass !";
// Đưa lesson KungfuClass vào thing $object
$object = recent KungfuClass();
// Xuất ra màng hình dòng chữ "Xin chào, tôi là phương thức của class KungfuClass !";
$object -> myMethod();
?>
Ngoài ra, hướng đối tượng cho phép chúng ta cài đặt và truy xuất thuộc tính, phương thức bên trong course thông qua con trỏ $this
<?php
class KungfuClass
public $property1 = "Mình là thuộc tính của class KungfuClass !";
function myMethod()
echo "Xin chào, tôi là phương thức của class KungfuClass !";
function myMethod2()
//truy xuất tới thuộc tính $property1
echo $this->property1;
echo "<br />";
$this->myMethod();
// Đưa course KungfuClass vào thing $object
$object = recent KungfuClass();
// Xuất ra màng hình dòng chữ "Mình là tính chất của class KungfuClass !" và "Xin chào, tôi là phương thức của course KungfuClass !"
$object -> myMethod2();
?>
Chạy lại đoạn script trên, chúng ta sẽ thấy hình thành ra ngoài trình duyệt 2 dòng chữ đó là “Mình là thuộc tính của lesson KungfuClass !” và “Xin chào, tôi là phương thức của lesson KungfuClass !”.
Bằng cách nhóm những đối tượng có điểm tương đồng về thuộc tính và phương thức trong một lesson, ta gọi là lớp phụ vương, và được những lớp khác kế thừa lại (lớp con). Chúng ta sẽ ko phải mất thời gian cho việc phải khai báo đi , khai báo lại những đặc tính chung đó. chả hạn như khi nói về xe, chúng ta có nào là xe hơi, xe máy, xe ô tô, xe tăng,…Chúng ta nhận thấy tất cả chúng đều có những đặc điểm chúng như là : vận tốc màu dung nhan, trọng lương, có thể chạy được,…chúng ta sẽ quy chúng về một lớp chung, tạm gọi là lớp Xe, trong lớp Xe này sẽ có những thuộc tính là vận tốc, màu dung nhan, kích thước và phương thức chung đó là chạy
<?php
class XeClass
public $verhicle = "10km/h";
public $weight= "1 tấn";
public $color = "đỏ";
function run()
echo "Xe đang chạy";
// Đưa class XeClass vào object $xe
$xe= new XeClass();
?>
Ở tỉ dụ trên, lớp xe là lớp thân phụ, chứa những đặc tính chung của các loại xe và các kiểu xe như xe hơi, xe máy, xe tăng,.. là những lớp con sẽ mang nhưng đặc tính của lớp thân phụ, nhưng khác nhau ở các cụ thể như xe hơi thì có vận tốc chạy cao hơn xe máy, xe máy thì chạy nhanh hơn xe tăng,.. hoặc sự khác biệt về màu sắc đẹp như xanh, đỏ, tím, vàng,…
<?php
lesson XeClass
public $verhicle = "10km/s";
public $weight= "1 tấn";
public $color = "đỏ";
function setVerhicle($verhicle_param)
$this -> verhicle =$verhicle_param;
function getVerhicle()
return $this -> verhicle;
function run()
echo "Xe đang chạy";
// Khởi tạo đối tượng xe hơi
$xehoi = modern XeClass();
// Khởi tạo đối tượng xe máy
$xemay = current XeClass();
// Khởi tạo đối tượng xe tăng
$xetang = current XeClass();
//xe hơicó vận tốc 100km/h
$xehoi -> setVerhicle ("100km/h");
//xe máy có vận tốc 60km/h
$xemay -> setVerhicle("60km/h");
//xe tăngcó vận tốc 50km/h
$xetang -> setVerhicle("50km/h");
//Xuất ra vận tốc những loại xe khác nhauy
//Vận tốc xe hơi
echo $xehoi->getVerhicle();
//Vận tốc xe máy
echo $xemay->getVerhicle();
//Vận tốc xe tăng
echo $xetang->getVerhicle();
?>
Ở những thí dụ trên, cả nhà có để ý thấy từ khóa “public” ko ? Đó chính là tầm vực của biến, bài viết tới mình sẽ nói chi tiết hơn về vấn đề này. Thân !

Hướng đối tương là môt mô hình lập trình phân tách nội dụng của chương trình theo hướng cổ truyền (thủ tục) và nhóm những tính chất, phương thức (properties, methods) giống nhau thành một đối tượng (class), giúp rút ngắn , tránh việc dôi thừa, và giữ vững được nguyên lýDRY – DONT REPEAT YOURSELF, dễ trong vấn đề báo trì, tăng hiệu quả công việc.Hãy thử mường tưởng bạn thiết kế 1 website hoặc một hệ thống lên cả nghìn, thậm chí hàng triệu dòng code, các mã lệnh đươc viết theo hướng cổ kính, một site (page) chứa nào là html, php,js, xử lý xen lẫn, trà trộn với nhau. Và Vậy là mỗi lần xuất hiện lỗi, gặp phải một vấn đề nào đó hay chỉ thuần tuý là sửa vài chỗ bé khi có đổi thay yêu cầu thì bạn phải lục tung cả mớ code, đi sửa từng chỗ này chỗ kia vì các đoạn code trùng lặp, điều này quả thật là một cơn ác hiểm mộng đối với một lập trình viên. Chính vì thế OOP ra đời nhằm giúp bạn giải quyết vấn đề này.[h=2]1. Cấu trúc class[/h]Để khai báo một lesson trong PHP, ta sử dụng từ khóa class, theo sau là tên class và một cặp ngoắc nhọn<?php
lesson KungfuClass
// những phương thức và thuộc tính của course được đặt ở đây
?>
Sau khi tạo lesson xong, chúng ta có thể lưu trữ course vào một biến, và sử dụng biến này truy xuất những phương thức , thuộc tính của classĐể lưu trữ lesson vào biến, ta sử dụng từ khóa ne
<?php
$object = novel KungfuClass();
?>
Để xem cấu trúc và nội dung của lesson như thế nào, bạn sử dụng từ khóa var_dump() ,
<?php
var_dump($object);
?>
imitate tất cả nội dung :
<?php lesson KungfuClass
// các phương thức và thuộc tính của lesson được đặt ở đây
// Lưu trức lesson vào biến
$object = modern KungfuClass();
var_dump($object);
?>
Vào một file đặt tên là bai1.php và lưu vào folder gốc của trang web, chạy đường dẫn localhost/bai1.php và xem kết quả. Thế là xong, chúng ta đã hoàn tất đoạn mã hướng đối tượng trước tiên một cách thức đơn giản nhất, tiếp theo hãy khám phá cách thức khai báo thuộc tính và phương thức trong lesson.
[h=2]2) Khai báo phương tính chất của lesson[/h]thuộc tính của class hiểu một phương pháp đơn giản là chỉ như là một biến chứa dữ liệu bình thường của PHP, chỉ có khác biệt là nó được đặt vào class và có mối liên can khắn khít với lesson chưa nó, và muốn truy xuất được tính chất của course thì phải thông qua một object . phương pháp khai báo thuộc tính của course như sau
<?php
course KungfuClass
public $property1 = "Mình là thuộc tính của lesson KungfuClass !";
// Đưa course KungfuClass vào object $object
$object = current KungfuClass;
// Xem nội dung thing
var_dump($object);
?>
[h=2]3.) Truy xuất thuộc tính trong lesson[/h]Để có thể truy xuất tính chất trong lesson, ta sử dụng con trỏ “->” của đối tượng thing. giả sử chúng ta muốn truy xuất tính chất $property1 và xuất ra ngoài màng hình dòng chữ “Mình là thuộc tính của course KungfuClass!”, hãy xem đoạn code dưới đây
<?php
$object = novel KungfuClass();
echo $object->property1;
?>
[h=2]4.) Khai báo phương thức trong lesson[/h]Cũng như tính chất, phương thức của class hiểu dễ dàng chính là function được đặt trong lesson, và có mối liên can khăng khít với course. Để tạo phương thức trong course, chúng ta làm như sau<?php
course KungfuClass
public $property1 = "Mình là thuộc tính của class KungfuClass !";
function myMethod()
echo "Xin chào, tôi là phương thức của course KungfuClass !";
// Đưa lesson KungfuClass vào thing $object
$object = new KungfuClass;
// Xem nội dung object
var_dump($object);
?>
[h=2]5 .) Truy xuất phương thức trong course[/h]Để truy xuất phương thức trong lesson, cũng như truy xuất thuộc tính, đơn giản chúng ta sử dụng con trỏ -><?php
lesson KungfuClass
public $property1 = "Mình là thuộc tính của lesson KungfuClass !";
function myMethod()
echo "Xin chào, tôi là phương thức của lesson KungfuClass !";
// Đưa lesson KungfuClass vào thing $object
$object = recent KungfuClass();
// Xuất ra màng hình dòng chữ "Xin chào, tôi là phương thức của class KungfuClass !";
$object -> myMethod();
?>
Ngoài ra, hướng đối tượng cho phép chúng ta cài đặt và truy xuất thuộc tính, phương thức bên trong course thông qua con trỏ $this
<?php
class KungfuClass
public $property1 = "Mình là thuộc tính của class KungfuClass !";
function myMethod()
echo "Xin chào, tôi là phương thức của class KungfuClass !";
function myMethod2()
//truy xuất tới thuộc tính $property1
echo $this->property1;
echo "<br />";
$this->myMethod();
// Đưa course KungfuClass vào thing $object
$object = recent KungfuClass();
// Xuất ra màng hình dòng chữ "Mình là tính chất của class KungfuClass !" và "Xin chào, tôi là phương thức của course KungfuClass !"
$object -> myMethod2();
?>
Chạy lại đoạn script trên, chúng ta sẽ thấy hình thành ra ngoài trình duyệt 2 dòng chữ đó là “Mình là thuộc tính của lesson KungfuClass !” và “Xin chào, tôi là phương thức của lesson KungfuClass !”.
Bằng cách nhóm những đối tượng có điểm tương đồng về thuộc tính và phương thức trong một lesson, ta gọi là lớp phụ vương, và được những lớp khác kế thừa lại (lớp con). Chúng ta sẽ ko phải mất thời gian cho việc phải khai báo đi , khai báo lại những đặc tính chung đó. chả hạn như khi nói về xe, chúng ta có nào là xe hơi, xe máy, xe ô tô, xe tăng,…Chúng ta nhận thấy tất cả chúng đều có những đặc điểm chúng như là : vận tốc màu dung nhan, trọng lương, có thể chạy được,…chúng ta sẽ quy chúng về một lớp chung, tạm gọi là lớp Xe, trong lớp Xe này sẽ có những thuộc tính là vận tốc, màu dung nhan, kích thước và phương thức chung đó là chạy
<?php
class XeClass
public $verhicle = "10km/h";
public $weight= "1 tấn";
public $color = "đỏ";
function run()
echo "Xe đang chạy";
// Đưa class XeClass vào object $xe
$xe= new XeClass();
?>
Ở tỉ dụ trên, lớp xe là lớp thân phụ, chứa những đặc tính chung của các loại xe và các kiểu xe như xe hơi, xe máy, xe tăng,.. là những lớp con sẽ mang nhưng đặc tính của lớp thân phụ, nhưng khác nhau ở các cụ thể như xe hơi thì có vận tốc chạy cao hơn xe máy, xe máy thì chạy nhanh hơn xe tăng,.. hoặc sự khác biệt về màu sắc đẹp như xanh, đỏ, tím, vàng,…
<?php
lesson XeClass
public $verhicle = "10km/s";
public $weight= "1 tấn";
public $color = "đỏ";
function setVerhicle($verhicle_param)
$this -> verhicle =$verhicle_param;
function getVerhicle()
return $this -> verhicle;
function run()
echo "Xe đang chạy";
// Khởi tạo đối tượng xe hơi
$xehoi = modern XeClass();
// Khởi tạo đối tượng xe máy
$xemay = current XeClass();
// Khởi tạo đối tượng xe tăng
$xetang = current XeClass();
//xe hơicó vận tốc 100km/h
$xehoi -> setVerhicle ("100km/h");
//xe máy có vận tốc 60km/h
$xemay -> setVerhicle("60km/h");
//xe tăngcó vận tốc 50km/h
$xetang -> setVerhicle("50km/h");
//Xuất ra vận tốc những loại xe khác nhauy
//Vận tốc xe hơi
echo $xehoi->getVerhicle();
//Vận tốc xe máy
echo $xemay->getVerhicle();
//Vận tốc xe tăng
echo $xetang->getVerhicle();
?>
Ở những thí dụ trên, cả nhà có để ý thấy từ khóa “public” ko ? Đó chính là tầm vực của biến, bài viết tới mình sẽ nói chi tiết hơn về vấn đề này. Thân !