peri hokiperihokiclarustologisticsrimashaop.compola taktis menang gates of olympus x1000 perihokipemain perihoki bongkar trik jepep starlight princess x1000perihoki beri panduan lengkap bermain mahjong ways 2 pgsofttips cara penghasil uang pgsoft mahjong ways 2 perihokimahjong wins 3 perihoki memberikan penggali terbesarfenomena gates of olympus buka peluang besar bagi duta76cara dapat pola emas rahasia di duta7 wild west goldtrik menang pgsoft mahjong ways 2 modal receh maxwin duta76duta76 main pgsoft mahjong ways 2 di sela istirahatscatter hitam mahjong wins 3 spin pasti jepe duta76perihoki spin mahjong ways 2 pgsoft scatter hitam maxwinsimbol mahjong wins 3 yang sering muncul di awal perihokitrik gampang menang mahjong winscuan mahjong wins 3 tanpa hentipola spin taruhan kecil mahjong winsstrategi kunci scatter hitam beruntungacor total mahjong wayskemenangan maksimal mahjong wayskemenangan pria pekanbaru mahjong waysmahjong wins3 fenomena baru sumatera baratmenangkan mahjong dengan lincahmenembus batas keberuntungan mahjong waysmenjajal keberuntungan di mahjong wayspola gratis mahjong ways1scatter hitam senjata rahasia mahjong winsteknik spinning menguntungkan untuk scatter hitamanalisis rtp tertinggi mahjong winsfenomena scatter hitam mahjong winsibu rumah tangga dan keberuntungan mahjongkeseruan main mahjong wins3menang mahjong pengguna baru di sosial mediamenghargai setiap momen di mahjong waysserunya main mahjong di warung internetspin slow motion mancing scatterstrategi jitu maxwin mahjong waysstrategi jitu menang mahjong modal kecil jackpot besaranak kampung papua menggemparkan mahjongkeajaiban scatter hitam mahjong wayskeberhasilan joni mahjong winskejaiban mahjong ways di ujung jalanketua mahjong wins3 kehadiran kemenangan dimulai dari balimahjong kehadiran yang menguntungkanmahjong menggila adat88panduan kilat raih 108 jutatips memenangkan mahjongbarista kopi menang 110 juta spin mahjongdakota76 scatter hitam mahjong wins 3gagal cpns menang mahjong wins 3 rp120 jutakisah karyawan minimarket dapat thr lebih awal mahjong winskisah pelajar sma kuasai mahjong wins 3 inspirasi sekolahkisah penjaga parkir tanah abang motor baru mahjong winskisah sukses ibu rumah tangga bandung mahjong winsmahasiswa kkn beli iphone15 mahjong wins3 dakotamantan anak band influencer mahjong scatter hitampola rtp senin gates of olympus guru matematikaidola scatter hitam gampang meledakidola sensasi jackpotidola pola scatter hitamidola hasilkan jackpot dalam waktu singkatidola mahjong wins 3 bocortukang cuci motor menemukan keberuntungan di mahjong

A PHP Error was encountered

Severity: Warning

Message: ini_set(): Headers already sent. You cannot change the session module's ini settings at this time

Filename: Session/Session.php

Line Number: 282

Backtrace:

File: /home/blogchuabenh/domains/freetuts.net/public_html/site/controllers/Main_controller.php
Line: 10
Function: __construct

File: /home/blogchuabenh/domains/freetuts.net/public_html/sources/index.php
Line: 299
Function: require_once

File: /home/blogchuabenh/domains/freetuts.net/public_html/index.php
Line: 26
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: session_set_cookie_params(): Cannot change session cookie parameters when headers already sent

Filename: Session/Session.php

Line Number: 294

Backtrace:

File: /home/blogchuabenh/domains/freetuts.net/public_html/site/controllers/Main_controller.php
Line: 10
Function: __construct

File: /home/blogchuabenh/domains/freetuts.net/public_html/sources/index.php
Line: 299
Function: require_once

File: /home/blogchuabenh/domains/freetuts.net/public_html/index.php
Line: 26
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: ini_set(): Headers already sent. You cannot change the session module's ini settings at this time

Filename: Session/Session.php

Line Number: 304

Backtrace:

File: /home/blogchuabenh/domains/freetuts.net/public_html/site/controllers/Main_controller.php
Line: 10
Function: __construct

File: /home/blogchuabenh/domains/freetuts.net/public_html/sources/index.php
Line: 299
Function: require_once

File: /home/blogchuabenh/domains/freetuts.net/public_html/index.php
Line: 26
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: ini_set(): Headers already sent. You cannot change the session module's ini settings at this time

Filename: Session/Session.php

Line Number: 314

Backtrace:

File: /home/blogchuabenh/domains/freetuts.net/public_html/site/controllers/Main_controller.php
Line: 10
Function: __construct

File: /home/blogchuabenh/domains/freetuts.net/public_html/sources/index.php
Line: 299
Function: require_once

File: /home/blogchuabenh/domains/freetuts.net/public_html/index.php
Line: 26
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: ini_set(): Headers already sent. You cannot change the session module's ini settings at this time

Filename: Session/Session.php

Line Number: 315

Backtrace:

File: /home/blogchuabenh/domains/freetuts.net/public_html/site/controllers/Main_controller.php
Line: 10
Function: __construct

File: /home/blogchuabenh/domains/freetuts.net/public_html/sources/index.php
Line: 299
Function: require_once

File: /home/blogchuabenh/domains/freetuts.net/public_html/index.php
Line: 26
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: ini_set(): Headers already sent. You cannot change the session module's ini settings at this time

Filename: Session/Session.php

Line Number: 316

Backtrace:

File: /home/blogchuabenh/domains/freetuts.net/public_html/site/controllers/Main_controller.php
Line: 10
Function: __construct

File: /home/blogchuabenh/domains/freetuts.net/public_html/sources/index.php
Line: 299
Function: require_once

File: /home/blogchuabenh/domains/freetuts.net/public_html/index.php
Line: 26
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: ini_set(): Headers already sent. You cannot change the session module's ini settings at this time

Filename: Session/Session.php

Line Number: 317

Backtrace:

File: /home/blogchuabenh/domains/freetuts.net/public_html/site/controllers/Main_controller.php
Line: 10
Function: __construct

File: /home/blogchuabenh/domains/freetuts.net/public_html/sources/index.php
Line: 299
Function: require_once

File: /home/blogchuabenh/domains/freetuts.net/public_html/index.php
Line: 26
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: ini_set(): Headers already sent. You cannot change the session module's ini settings at this time

Filename: Session/Session.php

Line Number: 375

Backtrace:

File: /home/blogchuabenh/domains/freetuts.net/public_html/site/controllers/Main_controller.php
Line: 10
Function: __construct

File: /home/blogchuabenh/domains/freetuts.net/public_html/sources/index.php
Line: 299
Function: require_once

File: /home/blogchuabenh/domains/freetuts.net/public_html/index.php
Line: 26
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: ini_set(): Headers already sent. You cannot change the session module's ini settings at this time

Filename: drivers/Session_files_driver.php

Line Number: 108

Backtrace:

File: /home/blogchuabenh/domains/freetuts.net/public_html/site/controllers/Main_controller.php
Line: 10
Function: __construct

File: /home/blogchuabenh/domains/freetuts.net/public_html/sources/index.php
Line: 299
Function: require_once

File: /home/blogchuabenh/domains/freetuts.net/public_html/index.php
Line: 26
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: session_set_save_handler(): Cannot change save handler when headers already sent

Filename: Session/Session.php

Line Number: 110

Backtrace:

File: /home/blogchuabenh/domains/freetuts.net/public_html/site/controllers/Main_controller.php
Line: 10
Function: __construct

File: /home/blogchuabenh/domains/freetuts.net/public_html/sources/index.php
Line: 299
Function: require_once

File: /home/blogchuabenh/domains/freetuts.net/public_html/index.php
Line: 26
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: session_start(): Cannot start session when headers already sent

Filename: Session/Session.php

Line Number: 143

Backtrace:

File: /home/blogchuabenh/domains/freetuts.net/public_html/site/controllers/Main_controller.php
Line: 10
Function: __construct

File: /home/blogchuabenh/domains/freetuts.net/public_html/sources/index.php
Line: 299
Function: require_once

File: /home/blogchuabenh/domains/freetuts.net/public_html/index.php
Line: 26
Function: require_once

Phương pháp lập trình truyền thống - Freetuts
PHP NÂNG CAO
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Bài 01: Phương pháp lập trình truyền thống

Để cho các bạn hiểu rõ tại sao lại phải học lập trình hướng đối tượng thì tôi sẽ giới thiệu các phương pháp lập trình truyền thống, từ đó các bạn thấy được các ưu và nhược điểm của từng phương pháp.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Nội dung chúng ta sẽ tìm hiểu các phương pháp sau:

  • Lập trình truyền thống có cấu trúc
  • Lập trình truyền thống hướng thủ tục
  • Lập trình truyền thống hướng modun

1. Lập trình truyền thống không có cấu trúc

Đây là phương pháp lập trình truyền thống cho những người mới bắt đầu học lập trình, không sử dụng hàm, tất cả dòng lệnh đều viết trong file từ trên xuống dưới, dữ liệu đều dùng chung và tất cả các biến đều ở dạng toàn cục.

Ví dụ: Chương trình in ra danh sách sinh viên

Bài viết này được đăng tại [free tuts .net]

//----------------------------------------//
// Chương trình in ra danh sách sinh viên //
//----------------------------------------//
 
// Danh Sách Sinh Viên
$sinhvien = array(
    'Nguyễn Văn A',
    'Nguyễn Văn B',
    'Nguyễn Văn C',
    'Nguyễn Văn D',
    'Nguyễn Văn E',
    'Nguyễn Văn F',
    'Nguyễn Văn G',
    'Nguyễn Văn H',
    'Nguyễn Văn I',
    'Nguyễn Văn K',
    'Nguyễn Văn L',
    'Nguyễn Văn M'
);
 
// In ra danh sách sinh viên
echo 'DANH SÁCH SINH VIÊN';
for ($i = 0; $i < $sinhvien; $i++){
    echo 'Sinh Viên ' . $sinhvien[$i];<br>
}

Ưu điểm: Viết rất nhanh, chương trình chạy cũng rất nhanh vì không phải thông qua giai đoạn gọi hàm, gọi đối tượng.

Nhược điểm:

  • Gặp khó khăn khi xây dựng các chương trình lớn, vì dòng lệnh rất dài rất khó bảo trì và quản lý dòng code.
  • Khi chương trình có những dòng lệnh được lặp lại thì phải copy thành nhiều chỗ, và khi sửa một chỗ thì phải sửa tất cả các chỗ còn lại.
  • Chỉ viết được các chương trình nhỏ.
  • Chương trình không khoa học, rất khó sửa chữa và bảo trì.

2. Lập trình truyền thống hướng thủ tục

Phương pháp lập trình thủ tục cũng là một phương pháp lập trình truyền thống, nó lấy các hàm làm nền tảng cơ bản để xây dựng chương trình, chương trình sẽ được phân nhỏ thành các hàm và mỗi hàm sẽ có chức năng riêng biệt. Các hàm sẽ gọi qua lại lẫn nhau để tạo thành một hệ thống của chương trình. Vì sử dụng hàm làm nền tảng nên có sử dụng khái niệm biến toàn cục và biến địa phương.

Minh họa lập trình hướng thủ tục

Hình minh họa lập trình hướng thủ tục

Ví dụ: Chương Trình Quản Lý Sinh Viên

//----------------------------------------//
// Chương trình Quản Lý Nhân Viên//
//----------------------------------------//
 
// Hàm kết nối cơ sở dữ liệu
function connect_db()
{
    // Dòng lệnh ...
}
 
// Hàm ngắt kết nối cơ sở dữ liệu
function disconnect_db()
{
    // Dòng lệnh ...
}
 
// Thêm Sinh Viên
function add_student($id, $name, $address, $birthday, $gender)
{
    connect_db();
 
    // Dòng lệnh ...
 
    disconnect_db();
}
 
// Xóa sinh viên
function delete_student($id)
{
    connect_db();
 
    // Dòng lệnh ...
 
    disconnect_db();
}
 
// Sửa sinh viên
function edit_student($id, $name, $address, $birthday, $gender)
{
    connect_db();
 
    // Dòng lệnh ...
 
    disconnect_db();
}

Ưu điểm: 

  • Chương trình được tổ chức khoa học hơn nên dễ quản lý và bào trì
  • Có thể thực hiện được nhiều chương trình lớn hơn

Nhược điểm:

  • Cách tiếp cận đôi khi không phù hợp với thực tế, các diễn đạt thiếu tự nhiên.
  • Khó mô tả được các hoạt động của thế giới tự nhiên
  • Bảo mật kém

3. Lập trình truyền thống hướng modun

Phương pháp lập trình truyền thống này lấy ý tưởng đóng hộp, các hàm có chức năng giống nhau sẽ được gom lại thành một modun độc lập, khi cần sử dụng module nào sẽ gọi tới module đó nên một chương trình có thể có nhiều module chứ không riêng lẻ độc lập.

Hình minh họa lập trình hướng module
Hình minh họa lập trình hướng module

Ví dụ: Cấu trúc chương trình phần mềm kế toán

File maths.php

//------------------//
// FILE maths.php --//
//------------------//
 
// cộng 2 số
function cong($a, $b){
    // Các lệnh ..
}
 
// cộng 2 số
function tru($a, $b){
    // Các lệnh ..
}
 
// cộng 2 số
function nhan($a, $b){
    // Các lệnh ..
}
 
// cộng 2 số
function chia($a, $b){
    // Các lệnh ..
}

File nhanvien.php

//------------------//
// FILE nhanvien.php --//
//------------------//
 
// Gọi module maths để xử lý tính toán
require ('maths.php');
 
// Thêm nhân viên
function them_nv()
{
    // Các lệnh ..
}
 
// Xóa nhân viên
function xoa_nv()
{
    // Các lệnh ..
}
 
// Sửa nhân viên
function edit_nv()
{
    // Các lệnh ..
}
 
// tính lương nhân viên
function luong_nv()
{
    // Các lệnh ..
}

File chuongtrinhchinh.php

// Gọi module nhanvien để thực hiện các thao tác của nhân viên
require 'nhanvien.php';
 
// Các thao tác
xoa_nv();
them_nv();
edit_nv();
luong_nv();

Ưu điểm:

  • Xây dựng được các chương trình lớn.- Code rõ ràng, dễ quản lý, bào trì và nâng cấp.
  • Phân theo khối nên mạch lạc

Nhước điểm:

  • Tuy phân theo khối nhưng dữ liệu không có sự gắn kết với nhau
  • Dữ liệu khởi tạo không bị huy sau khi gọi hàm

4. Lời kết

Trong bài học này mục đích tôi muốn các bạn hiểu rõ một vài kỹ thuật lập trình  truyền thống từ xưa tới nay, các ưu và nhược điểm của từng kỹ thuật, từ đó khi qua các bài lập trình hướng đối tượng các bạn sẽ dễ dàng so sánh ưu và nhược điểm của lập trình hướng đối tượng. Bài tiếp theo chúng ta sẽ học lập trình hướng đối tượng là gì?

Danh sách file tải về

Tên file tải về Pass giải nén
Tải bài học định dạng PDF freetuts.net hoặc gameportable.net

Cùng chuyên mục:

Hàm key_exists() trong PHP

Hàm key_exists() trong PHP

Cách sử dụng key_exists() trong PHP

Hàm mysqli_fetch_row() trong PHP

Hàm mysqli_fetch_row() trong PHP

Cách sử dụng mysqli_fetch_row() trong PHP

Hàm end() trong PHP

Hàm end() trong PHP

Cách sử dụng end() trong PHP

Hàm mysqli_field_count() trong PHP

Hàm mysqli_field_count() trong PHP

Cách sử dụng mysqli_field_count() trong PHP

Hàm count() trong PHP

Hàm count() trong PHP

Cách sử dụng count() trong PHP

Hàm mysqli_field_seek() trong PHP

Hàm mysqli_field_seek() trong PHP

Cách sử dụng mysqli_field_seek() trong PHP

Hàm compact() trong PHP

Hàm compact() trong PHP

Cách sử dụng compact() trong PHP

Hàm mysqli_field_tell() trong PHP

Hàm mysqli_field_tell() trong PHP

Cách sử dụng mysqli_field_tell() trong PHP

Hàm array_values() trong PHP

Hàm array_values() trong PHP

Cách sử dụng array_values() trong PHP

Hàm mysqli_free_result() trong PHP

Hàm mysqli_free_result() trong PHP

Cách sử dụng mysqli_free_result() trong PHP

Hàm array_unshift() trong PHP

Hàm array_unshift() trong PHP

Cách sử dụng array_unshift() trong PHP

Hàm mysqli_get_charset() trong PHP

Hàm mysqli_get_charset() trong PHP

Cách sử dụng mysqli_get_charset() trong PHP

Hàm array_shift() trong PHP

Hàm array_shift() trong PHP

Cách sử dụng array_shift() trong PHP

Hàm mysqli_get_client_stats() trong PHP

Hàm mysqli_get_client_stats() trong PHP

Cách sử dụng mysqli_get_client_stats() trong PHP

Hàm array_unique() trong PHP

Hàm array_unique() trong PHP

Cách sử dụng array_unique() trong PHP

Hàm mysqli_get_client_version() trong PHP

Hàm mysqli_get_client_version() trong PHP

Cách sử dụng mysqli_get_client_version() trong PHP

Hàm array_uintesect() trong PHP

Hàm array_uintesect() trong PHP

Cách sử dụng array_uintesect() trong PHP

Hàm mysqli_get_connection_stats() trong PHP

Hàm mysqli_get_connection_stats() trong PHP

Cách sử dụng mysqli_get_connection_stats() trong PHP

Hàm array_sum() trong PHP

Hàm array_sum() trong PHP

Cách sử dụng array_sum() trong PHP

Hàm mysqli_get_host_info() trong PHP

Hàm mysqli_get_host_info() trong PHP

Cách sử dụng mysqli_get_host_info() trong PHP

Top