1. Trang chủ
  2. » Luận Văn - Báo Cáo

tim hieu Joomla va Lap trinh PHP

31 13 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Cú pháp: chỉ có một loại giá trị của kiểu NULL. Tên biến không phân biệt chữ hoa hay chữ thường. Tên biến phải bắt đầu bằng một chữ cái hay một dấu gạch nối “_”, theo sau là các chữ cái,[r]

(1)

JOOMLA & PHP Mục lục

I Joomla

I.1 Khái niệm bản về

joomla 2

I.2 Các ưng dụng Joomla 2

I.3 Các phiên Joomla 2

I.4 Kiển trúc Joomla 3

I.5 Component 3

II Thiết kế component cho joomla 1.5.x 5

Các bước thiết kế component 6

III.Thiết kế template cho joomla 1.5.x 9

III.1 Cấu trúc gói cài đặt template Joomla 9

III.2 Các bước thiết kế template cho joomla 1.5.x 10

IV PHP IV.1 PHP ? 13

IV.2 Các hàm làm việc với PHP 14

IV.3 Các kiểu liệu 14

IV.4 Biến PHP 17

IV.5 Hằng số 21

IV.6 Toán tử 21

IV.7 Cấu trúc điều khiển 1) Câu lệnh if 22

2) Câu lệnh switch 22

3) Vòng lặp 23

IV.8 Hàm 25

IV.9 Classes Objects 1) Class 29

2) Extends 30

3) Hàm dựng 30

I Joomla

(2)

 Joomla hệ quản trị nội dung mã nguồn mở Nó viết ngôn ngữ PHP kết hợp với sở liệu MySQL, cho phép người sử dụng dễ dàng đưa nội dung thông tin họ lên internet intranet

 Joomla có đặc tính là:

 Bộ đệm trang(page caching): để giúp tăng tốc độ hiển thị  Lập mục

 Đọc tập tin RSS  Trang dùng để in  Bản tin nhanh

 Blog

 Bình chọn  Lịch biểu

 Tìm kiếm site  Hỗ trợ đa ngôn ngữ

 Joomla phát âm theo tiếng Swahili jumla nghĩa “đồng tâm hiệp lực”

 Joomla sử dụng rộng rãi giới, từ website cá nhân tới hệ thống website doanh nghiệp có tính phức tạp cao, cung cấp nhiều dịch vụ ứng dụng

 Joomla dễ cài đặt, dễ quản lý có độ tin cậy cao

 Joomla có mã nguồn mở việc sử dụng joomla hồn tồn miễn phí cho tất người giới

I.2 Các ứng dụng Joomla

Có nhiều ứng dụng sử dụng joomla, vài ứng dụng phổ biến joomla:

 Các cổng thông tin điện tử website doanh nghiệp  Thương mại điện tử trực tuyến

 Báo điện tử, tạp chí điện tử

 Website doanh nghiệp vừa nhỏ  Website quan, tổ chức phi phủ  Website trường học

 Website gia đình hay nhân 

I.3 Các phiên Joomla

Hiện joomla có phiên chính:

Joomla 1.0.x: phiên hệ (được cộng đồng người sử dụng các nhà phát triển đánh giá ổn định) Phiên phiên joomla 1.0.0 (ngày 25/9/2005) có nguồn gốc từ mambo 4.5.2.3 Phiên phát hành phiên joomla 1.0.15 (ngày 22/2/2008) Điểm mạnh phiên joomla 1.0.x có lượng lớn thành phần mở rộng (Module/component), thành phần nhúng (mambot), giao diện (template)  Dòng phiên 1.5.x: phiên hệ (ổn định), phiên cải

(3)

định dạng “.ini” để lưu trữ thơng tin chuyển đổi ngơn ngữ, hỗ trợ tất ngơn ngữ có tập kí tự biểu diễn bảng mã UTF-8 Joomla 1.5 bao gồm đặc tính như:

o Các mơ hình chứng thực (LDAP, Gmail ) o Hỗ trợ mơ hình Client/Server xml-rpc

o Hỗ trợ trình điều khiển cớ sở liệu dành cho MySQL 4.1+ (trên PHP5) tăng cường hỗ trợ cho MySQL 5, đồng thời hộ trợ hệ quản trị sở liệu khác

Điểm mạnh Joomla 1.5 là: phần quản trị Website có sử dụng cơng nghệ Web 2.0, có số tính cải tiến so với joomla 1.0.x

I.4 Kiến trúc Joomla

Joomla 1.5.x gồm có tầng hệ thống:

 Tầng mức tảng, chứa thư viện plugin (còn biết đến với tên gọi mambot)

 Tầng thứ hai mức ứng dụng chứa lớp Japplication tầng gồm có lớp con: Jinstallation, Jadminitrator JSite

 Tầng mức mở rộng Tầng chứa thành phần (component), module giao diện (Templates) thực thi thể Extentions tier

Application tier

Framework tier

Hình 1: Kiến trúc Joomla 1.5.x

I.5 Component: xem chi tiết component joomla 1.5.x bằng việc đăng nhập quyền admin để xem, hình component joomla 1.5.x

Hình 2: thành phần Component Joomla 1.5.x

Component tập ứng dụng nhỏ hiển thị phần thân trang web hay cách dễ hiểu component giúp hiển thị nội dung cách trình bày nội dung trang web, bao gồm banner, đường link Một component có hai thành phần chính: phần quản trị phần site Phần site phần sử dụng để tải trang triệu gọi trình hoạt động website thông thường Phần quản trị cung cấp giao diện để cấu hình, quản lý khía cạnh khác component truy cập thông qua ứng dụng quản trị Joomla

Joomla Framework

Joomla Framework PluginsPlugins JAppication

JAppication

Templates Templates Modules

Modules Components

(4)

i Banner: component cho phép quản lý banner Categories và Client Banners manager có tab, “Banner”, “Clients”, “Categories” - Banner tab: hiển thị chi tiết danh sách banner hoạt động

(published unpublished) website

- Client tab: hiển thị danh sách client chi tiết contact tương tứng chúng

- Categories tab: cho phép toàn categories banner thiết lập trạng thái “published” hay khơng, thay đổi trạng thái

Như vậy, banner quản lý phần riêng với tham số cần thiết như: “Impressions purchased” “Click URL”

ii Contact: cho phép quản lý thư mục contact liên quan đến contact website

- Contact tab: hiển thị danh sách contact hoạt động (published unpublished) Nó cung cấp khả để thêm edit contact có thơng tin chi tiết contact

- Categories tab: cho phép thiết lập thay đổi trạng thái categories contact

iii News feeds: Newsfeeds component cho phép hầu hết báo tồn trước từ external website link tới trang web khác có liên quan đến thôn tin đề cập

- Feeds tab: bao gồm danh sách tất feeds hoạt động (published unpublished) web site Thơng tin quan trọng thấy tên feed thuộc “Category” nào, feed thuộc chủ đề báo “#Articles”, thời gian lưu trữ lâu “Cache Time” - Categories tab: cho phép thiết lập thay đổi trạng thái các

categories feeds

- Feeds quản lý categories tham số khác như: Số báo (Number ò Articles), thời gian lưu trữ (Caching time), thể loại báo (ordering)

iv Polls: “Polls” component hiển thị danh sách tất đánh giá nội dung có web site Polls dễ quản lý với tham số như: “Lag” (thời gian lần đánh giá) “Options”( tùy chọn) cho “khách” đánh giá thêm tiêu chí khác Hình 3a lựa chọn để đánh giá hiểu biết khách joomla hình 3b kết lựa chọn khách

Hình 3a: Hình 3b:

(5)

thống kê danh sách đơn giản bao gồm “Search Text” so sánh với “Time Request ”, mặc định chúng xếp theo “Time Request”

vi Weblink: danh sách component cung cấp việc điều khiển quản lý đường web link hiển thị Front-end website

- Link tab: Hiển thị danh sách đường link hoạt động (published unpublished) thiết lập theo category order - Categories tab: cho phép các đường link categories được

thiết lập “Published” thay đổi trạng thái

- Weblink quản lý categories tham số kèm chúng như: “Target” “Description”

II. Thiết kế Componet theo mô hình MVC

Model-View-Controller (gọi tắt MVC) mẫu thiết kế phần mềm dùng để tổ chức đoạn mã theo cách mà việc xử lý liệu biểu diễn liệu tách rời Điều tạo tiền đề cho hướng tiếp cận sau mà việc xử lý liệu nhóm vào section, giao diện hay trình tương tác với người dùng bao quanh liệu định dạng tùy biến lại mà khơng phải lập trình lại việc xử lý liệu

MVC phát triển dựa mơ hình xử lý truyền thống input, processing, output Mơ hình cách thức thực xây dựng component theo phương pháp MVC, bao gồm cơng đoạn: Controller, model, view

Hình 4: Mơ hình làm việc theo kiến trúc MVC

Model: thành phần component đóng gói liệu cho ứng dụng Nó thường cung cấp thủ tục để quản lý, thao tác liệu theo cách đó, có thêm thủ tục để lấy liệu từ model Có thể bổ sung (insert), loại bỏ (delete) hay cập nhật (update) thông tin trường sở liệu (CSDL) Theo cách này, ứng dụng chuyển đổi sang việc sử dụng file bình thường để lưu trữ thơng tin thay sử dụng CSDL có thành phần Model thay đổi cịn thành phần View Controller khơng đổi

(6)

View không làm thay đổi liệu, hiển thị liệu lấy từ Model mà thôi)

Controller: Controller chịu trách nhiệm phản hồi hành động của người dùng Trong ứng dụng web, hành động người dùng thông thường yêu cầu tải trang Controller xác định yêu cầu người dùng đưa phản hồi thích hợp việc u cầu Model tính tốn liệu phù hợp chuyển từ Model vào View Controller khơng thể liệu từ Model, kích hoạt phương thức Model để hiệu chỉnh liệu sau chuyển từ Model sang View để hiển thị liệu

Trong Joomla, mơ hình MVC hỗ trợ thông qua lớp JModel, JView Jcontroller

Các bước xây dượng component:

Một component đầy đủ có cấu trúc sau:

Hình 5: Cấu trúc đầy đủ component

Thư mục admin chứa thành phần tạo nên giao diện quản trị cho component Joomla Back-End, thư mục site chứa thành phần tạo nên giao diện site cho component Joomla Front-End file XML chứa thơng tin mơ tả cài đặt Ví dụ xây dựng component hiển thị lời chào lấy từ CSDL theo mơ hình MVC Joomla

Đối với component (khơng có phần quản trị) cần file đặt thư mục models, views thư mục sites:

 Hello.php: file đầu vào cho component

 Controller.php: file chứa controller cho component

 View/hello/view.html.php: file nhận liệu cần thiết đặt vào template

 View/hello/tmpl/default.php: file template cho đầu ra, hiển thị lên site

 Hello.xml: file XML nói cho joomla biết cách cài đặt component

(7)

Nếu có thêm phần quản trị, có thêm thư mục admin chứa thư mục controllers, models, views có file tương tự phần site số file/thư mục đặc biệt như: file SQL (cài đặt gỡ bỏ bảng CSDL), thư mục tables, v.v Trong này, lấy ví dụ xây dựng component Hello hiển thị lời chào lấy từ CSDL

B1: Tạo điểm vào cho component (hello.php)

Joomla luôn truy cập thông qua điểm vào file index.php cho ứng dụng site cho ứng dụng quản trị) Sau ứng dụng tải (administrator/index.php component cần thiết dựa giá trị chọn lựa URL liệu POST

Đối với component này, URL có dạng: index.php? option=com_hello&view=hello tải file components/com_hello/hello.php Code:

<?php

defined( '_JEXEC' ) or die( 'Restricted access' ); // Require the base controller

require_once( JPATH_COMPONENT.DS.'controller.php' ); // Require specific controller if requested

if($controller = JRequest::getWord('controller')) {

$path = JPATH_COMPONENT.DS.'controllers'.DS.$controller.'.php'; if (file_exists($path)) {

require_once $path; } else {

$controller = ''; }

}

// Create the controller

$classname = 'HelloController'.$controller; $controller = new $classname( );

// Perform the Request task

$controller->execute( JRequest::getVar( 'task' ) ); // Redirect if set by the controller

$controller->redirect(); ?>

 Câu lệnh câu lệnh kiểm tra bảo mật JPATH_COMPONENT đường dẫn tuyệt đối tới component (ví dụ là: components/com_hello) tương tự với admin component JPATH_COMPONENT_ADMINISTRATOR (administrator/components)

 DS dấu phân cách thư mục hệ thống bạn: “\” “/” Điều thiết lập tự động framework, lập trình viên khơng phải quan tâm đến việc phát triển phiên khác cho hệ điều hành khác DS sử dụng tham chiếu đến file máy chủ cục

(8)

 Lớp Jrequest:getVar() tìm đến biến URL POST liệu, URL là: index.php?option=com_hello&controller=controller_name tên Controller lấy câu lệnh: Jrequest::getVar(‘controller’);

 Bây giờ, component có controller sở (ở HelloController, file com_hello/controller.php) cần thiết, ta bổ sung thêm controller dạng HelloControllerController1, HelloControllerController2, v.v (tương ứng với com_hello/controller1.php, com_hello/controller2.php, v.v )

 Sau Controller tạo ra, Controller chạy nhiệm vụ định URL: index.php?option=com_hello&task=sometask Nếu nhiệm vụ URL nhiệm vụ mặc định “display” giả định Khi nhiệm vụ “display” sử dụng biến “view” định hiển thị Ngồi cịn nhiệm vụ khác “save”, “edit”, “new”, …

 Controller định thực tải trang (redirect), thông thường sau nhiệm vụ “save” hoàn thành

B2: Tạo controller

 Controller ví dụ có nhiệm vụ thể lời chào nên đơn giản, khơng cần phải tính tốn liệu Tất cần thiết phải làm tải View thích hợp Để thị lời chào, có phương thức controller display() Hầu hết hàm cần thiết xây dựng lớp JController, nên cần gọi JController::display(); xong

<?php

class HelloController extends Jcontroller {

function display() {

parent::display();

}} ?>

 Khi khởi tạo lớp JController, ln có nhiệm vụ display() khơng có nhiệm vụ cụ thể ra, thiết lập nhiệm vụ mặc định Mặc dù trường hợp này, phương thức display() thật không cần thiết, nhiên tạo sở tốt cho việc phải điều cần phải làm controller Phương thức JController::display() xác định view layout từ request, tải view thiết lập layout

 Khi tạo menu item cho component, menu manager cho phép admin lựa chọn view mà họ thích để thể layout cụ thể Một View thông thường xem cách hiển thị tập liệu cịn layout cách tổ chức View Trong component (com_hello) có view đơn gọi hello layout đơn (default)

B3: Tạo View

Nhiệm vụ View đơn giản: nhận liệu thể đặt lên template Dữ liệu đặt lên template sử dụng phương thức JView::assignRef

<?php

defined( '_JEXEC' ) or die( 'Restricted access' ); jimport( 'joomla.application.component.view'); class HelloViewHello extends Jview

(9)

function display($tpl = null) {

$model =& $this->getModel(); $greeting = $model->getGreeting(); $this->assignRef( 'greeting', $greeting ); parent::display($tpl);

} } ?>

III. Thiết kết template cho joomla 1.5.x III.1 Cấu trúc gói cài đặt template joomla

Tất gói giao diện (template/theme) Joomla đóng gói file nén (.zip) cho phép bạn upload cài đặt trực tiếp thông qua trang quản trị Template mạnh Joomla Hiện có hàng nghìn template miễn phí có phí cho bạn lựa chọn Việc thiết kế chúng đơn giản bạn hồn tồn chuyển đổi từ template HTML sang template Joomla Ngoài bạn thay đổi template nhanh chóng dễ dàng thông qua trang quản trị Không Joomla cịn cho phép template áp dụng cho tồn site số trang định

Cấu trúc gói cài đặt template joomla bao gồm file bắt buộc sau:

index.php: File gồm mã lệnh PHP, thẻ <head> thẻ <table> thẻ <div> để định vị module tạo nên bố cục template

templateDetails.xml: sử dụng trình cài đặt File chứa thông số template giúp cho joomla biết qua trình cài đặt cần tạo thư mục truyền file css, php, ảnh lên thư mục templates

template.css: css joomla File kết hợp với index.php để tạo nên template File css file viết nhằm tạo giao diện đẹp cho website

template_thumbnail.png: file ảnh chụp minh họa template No giúp bạn dễ hình dung lựa chọn template phần quản trị mặt tiền website

Các thư mục file khác: ngồi file nói trên, gói cài đặt template có thêm thư mục CSS để chứa file CSS bổ sung Thư mục ảnh để chứa ảnh sử dụng cho template Thư mục javascript để chứa javascript (nếu có)

III.2 Các bước thiết kế template cho joomla 1.5.x

(10)

Hình 6: Các vị trí module component website joomla Bước 2: Viết code để tạo vị trí dành cho module component

 Tất module bên trái sử dụng đoạn mã có dạng sau: <jdoc: include type="modules" name="left" style=" " />

 Tất module bên phải sử dụng đoạn mã sau:

<jdoc: include type="modules" name="right" style=" " />

 Xây dựng component đươch sử dụng đoạn code sau:

<jdoc: include type="component" />

Hình 7: Code tạo vị trí dành cho module component Bước 3: Tạo file cho template

Bước 3.1: Tạo thư mục template mà thiết kế (VD: Linh_temlate), thư mục đặt thư mục templates joomla

(11)

Bước 3.3: Mở file “templateDetails.xml” vừa tạo bước 3.2 gõ vào nội dung sau:

Hình 8: code file “templateDetails.xml”  Bước 3.4: mở file “index.php” gõ vào nội dung sau:\

Hình 9: code file “index.php”

Bước 4: Kích hoạt Template cho joomla vừa tạo  Bước 4.1: Đăng nhập vào trang quản trị (VD:

http://localhost/administrator)

 Bước 4.2: Mở menu “Extensions” chọn “Template Manager”  Bước 4.3: Chọn template “Linh_template” mà tạo  Bước 4.4: Nhấn nút [Default] cơng cụ để kích hoạt

“linh_template” làm template mặc định

 Bước 4.5: Mở trang chủ kiểm tra xem template tạo nạp chưa

Bước 5: Tạo Layout cho template

Bước 5.1: Phác thảo giấy bố cục (layout) template – giả sử thiết kế layout sau:

Hình 10: layout phác thảo

(12)

Hình 11: Đoạn code file “index.php”

Bước 5.3: Kiểm tra lại layout vừa tạo chay thử - mở trang web và xem template vừa tạo

Bước 6: Nhúng mã joomla vào trang “index.php”

Joomla xây dựng loại thẻ riêng cho việc thiết kế template, thẻ <jdoc> Thẻ <jdoc> dùng để nạp phần tử riêng biệt joomla Chẳng hạn như: nạp “Head”, nạp “Module”, nạp “Component” Thẻ khai báo sau:

<jdoc:include type= “[head][module][component]”/>

Bước 6.1: Nhúng đoạn mã nạp vào phần HEAD trang web

<head><jdoc:include type= “head”/></head>

Bước 6.2: Nhúng đoạn mã để nạp MODULE COMPONENT. Chúng ta hay viết đoạn mã tương ứng đặt module component mà đà thiết kế (VD: theo template tơi thiết kế bước 5, đoạn code cho module component sau):

Hình 12: Các đoạn code để nạp module component

(13)

IV. PHP

IV.1 PHP ?

PHP ngơn ngữ lập trình kiểu script, chạy Server trả mã HTML cho trình duyệt PHP gần trở thành ngơn ngữ lập trình Web phổ biến mạng PHP chữ viết tắt cụm từ "PHP Hypertext Preprocessor", tạm dịch ngôn ngữ tiền xử lí siêu văn Các mã lệnh PHP nhúng vào trang web, trang thường có phần mở rộng php, php3, php4 Khi client gởi yêu cầu "cần tải trang về" đến web server, web server phân tích thi hành mã lệnh PHP nhúng trong, sau trả trang web kết xử lí cho client

Bạn hỏi, sau có nhiều tuỳ chọn ASP, Cold Fusion, Perl, Java, Python lại chọn PHP? Và câu trả lời là: ngơn ngữ dễ dùng, dễ học, cú pháp lệnh đơn giản, biến không cần phải khai báo trước dùng, tự động ép kiểu(typecast), chạy nhanh, tập hàm built-in phong phú, có mã nguồn mở…

IV.2 Các cách làm việc với PHP Có cách để dùng PHP:

i <? echo ("this is the simplest, an SGML processing instruction\n"); ?> ii <?php echo("if you want to serve XML documents, like this\n"); ?> iii <script language="php"> to have a U

echo ("some editors don't like processing instructions"); </script>

iv <% echo ("You may optionally use ASP-style tags"); %> <%= $variable; # This is a shortcut for "<%echo " %>

Cách i sử dụng tag ngắn cho phép sử dụng Có thể sửa short_open_tag cấu hình php biên dịch file php với lựa chọn cho phép dùng tag ngắn

Tương tự vậy, cách thứ iv có tác dụng asp_tag đặt file cấu hình PHP

IV.3 Các kiểu liệu

(14)

tượng ( object) Và cuối hai kiểu đặc biệt : resource NULL Loại liệu biến thông thường không gán người lập trình mà định thời gian chạy PHP, phụ thuộc vào ngữ cảnh mà biến dùng.

1. Boolean : kiểu đơn giản Một kiểu boolean biểu thị giá trị thật Nó TRUE hay FALSE

Cú pháp: để định giá trị boolean, sử dụng từ khoá TRUE hay là FALSE Cả hai khơng phân biệt chữ hoa hay chữ thường.

Ví dụ: $foo=True; // gán giá trị TRUE cho biến $foo

Để chuyển giá trị sang kiểu boolean, dùng (bool) hay (boolean) Tuy nhiên hầu hết trường hợp bạn không cần phải sử dụng việc ép kiểu này, giá trị tự động chuyển tốn tử, hàm cấu trúc điều khiển đòi hỏi tham số kiểu boolean

Chú ý: -1 xem TRUE, giống giá trị khác khác ( số dương hay âm)

2. Integer : tập hợp bao gồm số { ,-2,-1,0,1,2, }.

Cú pháp: Integer định số 10, số thập lục phân hay số bát phân, tuỳ chọn trước dấu - hay + Nếu bạn sử dụng với số bát phân, bạn phải theo thứ tự với đứng trước, số thập lục phân 0x

Ví dụ sau:

$a = 1234; # số thập phân $a = -123; # số âm

$a = 0123; # số bát phân $a = 0x1A; # số thập lục phân

Kích thước kiểu liệu 32bit, PHP không hỗ trợ kiểu unsigned integer Nếu bạn định số vượt qua biên kiểu liệu integer, xem như kiểu float Tương tự vậy, bạn thực phép toán mà kết trả số vượt qua biên kiểu integer, kiểu float trả Tuy nhiên, có lỗi PHP mà khơng phải điều đúng, liên quan đến số âm Chẳng hạn, bạn thực -50000* $million, kết 429496728 Tuy nhiên, hai tốn tử số dương khơng có vấn đề xảy

Để chuyển giá trị sang kiểu integer, ta dùng tốn tử ép kiểu (int) hay (integer) Tuy nhiên, hầu hết trường hợp bạn khơng cần phải dùng tốn tử ép kiểu đó, giá trị tự động chuyển sang toán tử, hàm hay cấu trúc điều khiển đòi hỏi đối số integer

3. Kiểu số thực (floats,doubles,hay real numbers) : định cách sử dụng cú pháp sau:

$a = 1.234; $a = 1.2e3; $a = 7E-10;

Kích cỡ kiểu float tùy thuộc vào platform, giá trị lớn xấp xỉ 1.8e308 4. String : chuỗi kí tự.Trong PHP,một kí tự tương tự một

byte, có xác 256 kí tự khác

Cú pháp: khai báo ba cách khác sau:

Dấu nháy đơn: cách dễ dàng để định chuỗi đơn giản đóng nó dấu nháy đơn.Ví dụ:echo 'le bao vy';

Dấu nháy kép: chuỗi đóng dấu nháy kép("),PHP hiểu có thêm chuỗi cho kí tự đặc biệt Ví dụ: \n;\t;\\;\$;…

(15)

nháy Định danh dùng để đóng phải bắt đầu cột dòng Định danh dùng phải có tên giống quy luật đặt tên biến PHP

5. Mảng : danh sách phần tử có kiểu liệu.Mảng mảng chiều hay nhiều chiều

 Mảng chiều có mục : mảng quản lý cách sử dụng số kiểu integer để biểu thị vị trí giá trị yêu cầu.Cú pháp: $name[index1];

Ví dụ: mảng chiều tạo sau: $meat[0]="chicken";

$meat[1]="steak"; $meat[2]="turkey";

Nếu bạn thực thi dòng lệnh sau: print $meat[1]; trình duyệt hiển thị dịng sau: steak

Bạn sử dụng hàm array( ) PHP để tạo mảng.Ví dụ: $meat=array("chicken","steak","turkey");

 Mảng chiều kết hợp : thuận lợi dùng để ánh xạ mảng sử dụng từ sử dụng integer, giúp ta giảm bớt thời gian mã yêu cầu để hiển thị giá trị cụ thể Ví dụ: bạn muốn ghi lại tất thức ăn loại rượu ngon

$pairings["zinfandel"] = "Broiled Veal Chops"; $pairings["merlot"] = "Baked Ham";

$pairings["sauvignon"] = "Prime Rib";

Một cách khác bạn sử dụng hàm array( ) PHP để tạo mảng loại này, ví dụ sau:

$pairings = array( zinfandel => "Broiled Veal Chops", merlot => "Baked Ham",sauvignon => "Prime Rib", sauternes => "Roasted Salmon";

 Mảng nhiều chiều có mục : chức giống mảng chiều có mục, ngoại trừ việc có thêm mảng mục dùng để định phần tử Cú pháp: $name[index1] [index2] [indexN];Một mảng hai chiều có mục tạo sau:

$position = $chess_board[5][4];

 Mảng đa chiều kết hợp : hữu ích PHP Giả sử bạn muốn ghi lại cặp rượu-thức ăn, không loại rượu, mà nhà sản xuất Bạn thực sau:

$pairings["Martinelli"] ["zinfandel"] = "Broiled Veal Chops"; $pairings["Beringer"] ["merlot"] = "Baked Ham";

$pairings["Jarvis"] ["sauvignon"] = "Prime Rib";

6. Object : bạn xem object biến mà minh hoạ kiểu mẫu template gọi class Khái niệm đối tượng lớp sử dụng nhiều ngơn ngữ lập trình hướng đối tượng OOP Khơng giống kiểu liệu khác PHP, object phải khai báo.Điều quan trọng phải nhận object khơng minh hoạ lớp, hoạt động khuôn mẫu cho việc tạo object có đặc tính chức cụ thể Cho nên, lớp(class) phải định nghĩa trước khai báo object Để khởi tạo đối tượng, bạn sử dung câu lệnh new để minh hoạ đối tượng với biến

Ví dụ:

<?php class foo{

(16)

}

$bar = new foo; $bar->do_foo(); ?>

7. Resource : biến đặc biệt, chứa tham chiếu đến resource bên ngoài. Các resource tạo sử dụng hàm đặc biệt Giải phóng resources: tham chiếu đếm hệ thống giới thiệu PHP4 Zend-engine, tự động phát resource không cần thiết cho lâu dài Khi trường hợp này, tất resource mà dùng cho resource giải phóng "bộ phận thu nhặt rác" Do đó, thật cần thiết để giải phóng nhớ thơng thường cách sử dụng hàm free_result().

8. NULL : giá trị NULL đặc biệt dùng để thể biến khơng có giá trị Một biến xem NULL nếu:

o Nó gán giá trị số NULL o Nó chưa khởi tạo giá trị o Nó hàm unset( )

Chú thích: unset () hàm dùng để hủy bỏ biến định

Cú pháp: có loại giá trị kiểu NULL Bạn khai báo ví dụ sau: $var=NULL;

IV.4 Biến PHP

Biến PHP thể dấu dollar $ theo sau tên biến Tên biến không phân biệt chữ hoa hay chữ thường Tên biến phải bắt đầu chữ hay dấu gạch nối “_”, theo sau chữ cái, chữ số dấu gạch nối Ví dụ:

var = "Bob"; $Var = "Joe"; echo "$var, $Var";

Trong PHP3 biến phải ln ln gán giá trị Cịn PHP4 cung cấp thêm cách khác để gán giá trị cho biến: gán theo tham chiếu Điều có nghĩa biến tham chiếu đến biến nguyên thuỷ Sự thay đổi biến tác động đến biến nguyên thuỷ ngược lại Nó có nghĩa khơng có chép, việc kết gán diễn nhanh Để thực gán tham chiếu, cần thêm & đầu tên biến gán.Ví dụ sau in dịng 'My name is Bob' hai lần:

<?php

$foo = 'Bob'; // gán giá trị 'Bob' cho $foo $bar = &$foo; // Tham chiếu $foo qua $bar $bar = "My name is $bar"; // thay đổi $bar

echo $bar;

echo $foo; // $foo bị thay đổi ?>

Phạm vi biến: Các biến PHP bốn loại phạm vi sau:  Biến cục

(17)

1) Biến cục bộ : Một biến khai báo hàm xem biến cục tham chiếu hàm Bất kể việc gán giá trị bên ngồi hàm xem biến hoàn toàn khác với biến hàm Chú ý khỏi hàm mà biến cục khai báo, biến giá trị bị huỷ bỏ Biến cục có thuận lợi loại bỏ khả tác động khơng dự đốn làm thay đổi kết từ biến truy cập tồn cục.Ví dụ:

$x = 4;

function assignx () { $x = 0;

print "\$x inside function is $x <br>"; }

assignx();

print "\$x outside of function is $x <br>"; Sau thực có kết sau:

$x inside function is $x outside of function is

2) Tham số hàm : giống nhiều ngơn ngữ lập trình khác, PHP hàm có chứa tham số phải khai báo tham số phần đầu hàm Mặc dầu, tham số nhận giá trị đến từ bên hàm, chúng truy cập hàm tồn Các tham số hàm khai báo sau tên hàm bên dấu {

Ví dụ:

function x10 ($value) { $value = $value * 10; return $value;}

Điều quan trọng cần phải ý bạn truy cập thao tác với tham số hàm mà khai báo, bị huỷ bỏ hàm kết thúc thực

3) Biến toàn cục : ngược lại với biến cục bộ, biến toàn cục truy cập từ bất phần chương trình Tuy nhiên, để chỉnh sửa, biến toàn cục phải khai báo toàn cục hàm mà chỉnh sửa Để khai báo biến tồn cục ta đặt từ khố GLOBAL phía trước.Ví dụ:

$somevar = 15; function addit() { GLOBAL $somevar; $somevar++;

print "Somevar is $somevar"; }

addit();

Kết $somevar 16 Tuy nhiên, bạn bỏ dòng lệnh GLOBAL $somevar; biến $somevar có giá trị 1, biến $somevar xem biến cục hàm addit( )

Một cách khác để khai báo biến toàn cục sử dụng mảng $GLOBALS PHP Ví du, khai báo biến $somevar toàn cục cách sử dụng mảng này:

$somevar = 15; function addit() {

(18)

$somevar++; }

addit();

print "Somevar is $somevar";

4) Biến static : tương phản với biến khai báo tham số hàm sẽ bị huỷ bỏ thoát khỏi hàm, biến static khơng giá trị khỏi hàm giữ nguyên giá trị hàm gọi lại lần Bạn khai báo biến static cách dùng từ khoá STATIC đặt trước tên biến Ví dụ:

function keep_track() { STATIC $count = 0; $count++;

print $count; print "<br>"; }

keep_track(); keep_track(); keep_track(); Kết :

1

Truy cập biến từ trình duyệt:

Khi dùng PHP, phần mềm trung gian khác, thông tin cung cấp tuỳ chọn dựa vào tham chiếu người dùng Dĩ nhiên thông tin đến thơng qua “form” Thơng tin đến từ nơi khác, “cookie” hay “sessions”

a.Biến form:

Một cách phổ biến chuyển biến thông qua “form” Mỗi thành phần form gán tên thuộc tính giá trị Khi form “submit” name=value chuyển đến PHP Chúng ta chuyển đến PHP phương pháp GET POST, tùy thuộc chọn thuộc tính hành động “form” Một form “submit”, thành phần form tự động trở thành biến toàn cục PHP

b.Sessions:

PHP giống ASP ColdFusion hỗ trợ sessions Vậy sessions gì? Về cách khác để trì trạng thái trang Web Chúng ta bắt đầu sessions hàm start_session() Khi PHP đăng ký session ID gửi session ID cho người dùng thông qua cookie PHP tạo tệp đáp trả server để lưu giữ dấu vết biến Những tệp có tên với session ID

Một session tạo đăng ký biến số Giá trị giữ tệp máy chủ Và thời gian sống session biến thực trang tên miền mà không cần truy cập đến chúng

(19)

sessiong ID phụ thuộc queryString, thay đổi tuỳ chọn cấu hình Để thêm session Id đến querystring, ta dùng <?=SID?> Nó tự động in chuỗi sau: PHPSESSID=07e935k3kkjr0986s9d89fr9trg8rgrg20

<a href=”mypage.php?<?=SID?>”>Click my Page</a>

Đoạn mã sau đăng ký session ID gán cho giá trị là: hello world <?php

session_start();

session_register(“my_var”); $my_var=”hello world”; ?>

c.Cookies:

Cookies mẩu thông tin nhỏ lưu trữ máy tính người dùng Một cookies chứa đoạn văn nhỏ đọc máy chủ Web Cookies cung cấp cách để giữ dấu vết người sử dụng thông qua số dịch vụ Chúng ta phải nhớ Web môi trường trạng thái Máy chủ Web yêu cầu thông tin, cookies giúp giữ thông tin người dùng họ di chuyển quanh site Khi họ tồn , cookies trở thành phần yêu cầu HTTP gửi đến cho máy chủ Web Những trước hết cần thiết lập cookies Những người phát triển làm điều này, giống thứ khác PHP, chúng đơn giản Dùng hàm setcookie() với tham số theo sau:

setcookie(name, value, time_to_expire, path, domain, security setting); Vi dụ:

setcookie(“mycookie”, “my_id”, time()+ (60*60*24*30),”/”,”.mydomain.com”,0) Cookie thiết lập tham số sau:

o Lưu trữ tên biến có tên mycookie o Giá trị biến my_id

o cookie có giá trị 30 ngày kể từ ngày thiết lập o cookie có hiệu lực trang domain

o Nó có hiệu lực chỗ tền miền mydomain.com o Khơng có thiết lập an tồn đặc biệt

IV.5 Hằng số

Hằng giá trị chỉnh sửa thông qua việc thực chương trình Bạn định nghĩa cách dùng hàm define( ) Một định nghĩa, khơng bị thay đổi

Chỉ có kiểu liệu boolean, integer, float, string chứa Bạn nhận giá trị cách đơn giản định tên Khơng giống với biến, bạn không cần khai báo $ trước Bạn dùng hàm constant(), để đọc giá trị Sử dụng hàm get_defined_constants( ) để nhận danh sách tất hàm định nghĩa

Các định nghĩa trước: PHP cung cấp lượng lớn định nghĩa trước để script chạy

IV.6 Toán tử

Toán tử ký hiệu định hoạt động biểu thức.Các tốn tử có PHP sau:

Tốn tử Mục đích

( ) Thực theo yêu cầu có thứ tự

New Minh hoạ object

(20)

++ Tự động tăng, tự động giảm

@ Che dấu lỗi

/ * % Chia, nhân, chia lấy dư

+ - Cộng, trừ, nối

<< >> Dịch sang trái, dịch sang phải Bitwise

< <= > >= So sánh nhỏ hơn, nhỏ hay bằng, lớn hơn, lớn hay

== != === <> So sánh bằng, không bằng, giống nhau, khác & ^ | Phép AND, OR, XOR Bitwise

&& || Phép AND, OR Boolean

?: Toán tử tam phân

= += *= /= = Các toán tử gán %=&= |= ^=

AND XOR OR Phép AND, XOR, OR Boolean IV.7 Cấu trúc điều khiển

1) Câu lệnh If : Câu lệnh If đặc tính quan trọng mỗi ngơn ngữ lập trình Nó cho phép thực thi chọn lựa dòng mã lệnh thoả mãn điều kiện cụ thể.Chẳng hạn:

if ($country=="ca")echo ("Canada");//Canada in biến $country ca

Nếu nhiều câu lệnh thực thỗ mãn điều kiện sử dụng dấu {} để dòng lệnh nằm khối if:

//Canada in biến $country ca if ($country=="ca"){

echo("Canada"); echo("Ottawa"); }

Điều kiện kiểm tra dấu {}phải trả giá trị Boolean, true false Cũng điều kiện mà khơng thỗ mãn, zero chuỗi rỗng (""), giá trị không định nghĩa tất trả giá trị false Các điều kiện nối với toán tử logic and (&&), or(||) xor.Ví dụ sau:

if (((4 < 5) && (3 > 2)) xor (5 == 5)) echo ("This will not print");

Các điều kiện phân nhánh: Nếu điều kiện kiểm tra mà trả false, PHP cho phép ta khối lệnh khác cần thực cách dùng từ khoá else Mỗi thứ khối mã lệnh thực thi điều kiện xem phân nhánh nhánh phải định vị dấu ngoặc chức nhiều dịng lệnh.Ví dụ:

if ($h < 0) {

echo ("Negative"); } else {

echo ("Positive"); }

PHP cung cấp từ khoá elseif để kiểm tra điều kiện lựa chọn điều kiện câu lệnh if không Một số câu lệnh elseif sử dụng với câu lệnh if Nhánh else cuối cho phép định vị đoạn mã mà nên thực điều kiện if elseif không

(21)

echo ("Negative"); } elseif ($h == 0) {

echo ("Zero"); } else {

echo ("Positive"); }

Ta kiểm tra điều kiện hoàn toàn khác sử dụng elseif: if ($country == "ca") {

// something } elseif ($position == "h") {

// something else }

Chú ý: hai điều kiện true, có nhánh lệnh thứ được thực

Cũng sử dụng câu lệnh if lồng câu lệnh if khác.Ví dụ: if ($country == "ca") {

if ($position == "h") {

echo ("Human resources positions in Canada."); } elseif ($position == "a") {

echo ("Accounting positions in Canada."); }

}

Các câu lệnh tương tự sau:

if ($country == "ca" && $position == "h") {

echo ("Human resources positions in Canada."); } elseif ($country == "ca" && $position == "a") {

echo ("Accounting positions in Canada."); }

PHP cung cấp cú pháp lựa chọn cho câu lệnh if,đó if endif.Ví dụ: if ($country == "ca"):

echo ("Canada"); elseif ($country == "cr"):

echo ("Costa Rica"); else:

echo ("the United States"); endif;

2) Câu lệnh switch : sử dụng biến riêng rẽ kiểm tra so với các giá trị khác.Ví dụ:

switch ($country) { case "ca":

echo ("Canada"); break;

case "uk":

echo ("the United Kingdom"); break;

default:

(22)

}

Khi câu lệnh switch thực kiểm tra giá trị biến $country so sánh với giá trị mệnh đề case Khi giá trị thích hợp tìm thấy, câu lệnh kết hợp với case thực gặp câu lệnh break Cịn khơng tìm giá trị thích hợp câu lệnh default thực Chú ý lệnh switch PHP linh hoạt nhiều so với hầu hết ngôn ngữ khác Không giống C, Java JavaScript, giá trị case loại vơ hướng, bao gồm tất số ,các chuỗi biến.Ví dụ:

$val = 6;$a = 5;$b = 6; switch ($val) {

case $a:

echo ("five"); break;

case $b:

echo ("six"); break; default:

echo ("$val"); }

Các mảng đối tượng loại liệu là nhãn case PHP

3) Vịng lặp: Các vịng lặp phương tiện việc thực thi khối mã lệnh số lần cho trước gặp phải điều kiện định PHP có hai loại vòng lặp: vòng lặp while kiểm tra điều kiện trước sau bước tính lặp lặp lại thực lặp lại điều kiện Một kiểu lặp khác for, trường hợp này, số lượng bước tính lặp lặp lại qui định trước lặp lần đầu bị thay đổi

Vòng lặp while : câu lệnh lặp đơn giản Cú pháp tương tự câu lệnh if:

while (condition) { //các câu lệnh }

Một vòng lặp while kiểm tra biểu thức Boolean Nếu biểu thức false đoạn mã bên dấu ngoặc móc bỏ qua Ngược lại, có giá trị true đoạn mã bên dấu ngoặc móc thực Khi gặp dấu } thí điều kiện kiểm tra thực lại có giá trị true đoạn mã vịng lặp thực lại Điều tiếp tục gặp phải điều kiện Chú ý điều kiện kiểm tra bắt đầu vòng lặp, xác điều kiện thay đổi suốt đoạn khối lệnh ,thì mã lệnh thực thi hết Để khỏi vào thời điểm sớm hơn,ta sử dụng lệnh break Ví dụ:

$i = 11; while ( $i) {

(23)

++$num_bikes; }

Trong ví dụ này, ta hình dung hàm my_function khơng trả lỗi vịng lặp lặp lặp lại 10 lần dừng lại biến $i =0 Còn my_function trả lỗi, câu lệnh break thực vịng lặp dừng lại.

Có nhiều trường hợp mà mong muốn kết thúc lặp lại thời vịng lặp khơng phải tồn vịng lặp Để đạt điều này, ta sử dụng lệnh continue.Ví dụ:

$i = 11; while ( $i) {

if (my_function($i) == "error") { continue;

}

++$num_bikes; }

Đoạn mã lặp lặp lại 10 lần khơng có lỗi trả hàm my_function Tuy nhiên lúc này, có lỗi xảy ra, việc thực lướt qua lặp lại vịng lặp, mà khơng tăng biến đếm $num_bikes.Giả sử biến $i lớn 0, vòng lặp tiếp tục bình thường

Vịng lặp while : vòng lặp giống while, ngoại trừ điều kiện kiểm tra cuối vịng lặp, thay đầu Điều có nghĩa vịng lặp ln ln thực lần Ví dụ:

echo ("<SELECT name='num_parts'>\n"); $i = 0;

do {

echo ("\t<OPTION value=$i>$i</OPTION>\n"); } while (++$i < $total_parts);

echo ("</SELECT>\n");

Với đoạn mã trên, giá trị zero luôn xuất tùy chọn thành phần <SELECT>, biến $total_parts=0

Các câu lệnh while while thường dùng với toán tử tăng hay giảm để điều khiển bắt đầu dừng ví dụ Các biến thường dùng cho mục đích đơi định nghĩa biến điều khiển vịng lặp.Thơng thường sử dụng câu lệnh while việc đọc records từ truy vấn sở liệu, từ dòng file từ nhân tố mảng

Vòng lặp for : Cấu trúc vòng lặp for phức tạp các vòng lặp for thường tiện lợi vòng lặp while:

for ($i = 1; $i < 11; ++$i) {

echo ("$i <BR> \n"); //In từ đến 10 }

(24)

kết thúc Biểu thức thứ ba câu lệnh mà thực thi giai đoạn cuối lần lặp vịng lặp Nó thường dùng để tăng hay giảm biến điều khiển vòng lặp

IV.8 Hàm

Đây thuận lợi phát triển ứng dụng Các hàm cho phép bạn phát triển việc sử dụng lại dễ dàng chỉnh sửa thành phần mà thật hữu ích bạn phát triển ứng dụng Web tương tự quan niệm tiện ích Các kết hàm ngắn gọn, dễ hiểu dễ đọc

Vậy hàm gì? Hàm đoạn mã lệnh với mục đích cụ thể phải gán tên Tên hàm gọi đâu chương trình, cho phép đoạn mã thể tên thực lặp lại cần thiết Đây thuận lợi đoạn mã lệnh viết lần chỉnh sửa dễ dàng cần thiết

Tạo hàm PHP đơn giản Bạn tạo hàm nơi chương trình PHP Tuy nhiên, cho mục đích tổ chức bạn thấy thuận lợi đặt tất hàm dự định sử dụng script đầu file script Một phương thức khác cho việc tổ chức hàm mà giảm dư thừa đáng kể tăng việc sử dụng lại đặt hàm file riêng rẽ( xem thư viện) Điều thuận lợi bạn dùng hàm lặp lặp lại ứng dụng khác mà không tạo việc copy dư thừa giảm bớt nguy gây lỗi việc viết lại

Một hàm thường bao gồm ba phần phân biệt:  Tên hàm

 Cặp dấu ngoặc ( ) chứa tham số tuỳ chọn nhập vào  Phần thân hàm,nằm cặp dấu { }

Ví dụ khai báo hàm sau:

function display_copyright($site_name) {

print "Copyright &copy 2000 $site_name All Rights Reserved."; }

Các hàm lồng nhau: Các hàm lồng Điều thật hữu ích cho các chương trình lớn nhỏ, thêm vào mức độ modul hoá khác vào ứng dụng, kết tăng lên đáng kể việc quản lý mã

Quay lại với ví dụ display_copyright trên, bạn giới hạn nhu cầu chỉnh sửa ngày tháng với việc dùng hàm lồng định nghĩa trước PHP hàm display_copyright():

function display_copyright($site_name) {

print "Copyright &copy" date("Y") " $site_name All Rights Reserved."; }

Bạn lồng khai báo hàm hàm khác Tuy nhiên, việc lồng khai báo hàm khơng ngụ ý bảo vệ phạm vi giới hạn mà khai báo Hơn nữa, hàm lồng vào không thừa kế tham số nhập vào "cha mẹ" nó, tham số phải chuyển sang hàm lồng chúng chuyển sang hàm khác Tuy nhiên, việc lồng khai báo hàm thật hữu ích cho lý quản lý mã đảm bảo rõ ràng tổ chức mã

Ví dụ:

function display_footer($site_name) {

(25)

print "Copyright &copy " date("Y") " $site_name All Rights Reserved.";

} print "<center>

<a href = \"\">home</a> | <a href = \"\">recipes</a> | <a href = \"\">events</a><br>

<a href = \"\">tutorials</a> | <a href = \"\">about</a> | <a href = \"\">contact us</a><br>";

display_copyright($site_name); print "</center>";

}

$site_name = "PHP Recipes"; display_footer($site_name);

Sau thực hiện,đoạn script cho kết sau: home | recipes | events

tutorials | about | contact us

Các hàm lồng PHP không bảo vệ việc gọi từ đoạn script chương trình, chúng gọi lại sau hàm cha mẹ gọi Việc gọi thử hàm lồng trước gọi hàm cha mẹ sinh thơng báo lỗi

Các giá trị trả từ hàm: Việc trả giá trị từ hàm hữu ích, được thực cách gán giá trị gọi hàm cho biến Bất kỳ kiểu liệu trả từ hàm bao gồm kiểu mảng danh sách

Ví dụ: xây dựng hàm tính thuế bán hàng $price = 24.99;

$tax = 06;

function calculate_cost($tax, $price) { $sales_tax = $tax;

return $price + ($price * $sales_tax); }

// ý cách calculate_cost() trả lại giá trị $total_cost = calculate_cost ($tax, $price);

// làm tròn biến $total_cost có dấu chấm thập phân $total_cost = round($total_cost, 2);

print "Total cost: ".$total_cost; // $total_cost = 26.49

Hàm đệ quy: Hoạt động hàm gọi lại thân nhiều lần để thoả mãn vài phép toán thật sức mạnh Nếu sử dụng cách đắn, việc gọi hàm đệ quy tiết kiệm khoảng trống không đáng dư thừa script đặc biệt hữu ích cho việc thực thủ tục lặp lặp lại

Ví dụ sử dụng hàm lặp đệ quy để tính tập hợp số integer function summation ($count) {

if ($count != 0) :

(26)

}

$sum = summation(10); print "Summation = $sum";

Kết đoạn mã Summation=55

Sử dụng hàm đệ quy cải thiện tốc độ chương trình hàm gọi đủ thường xuyên.Tuy nhiên,phải cẩn thận viết thủ tục đệ quy ,nếu mã không dẫn đến việc lặp không dừng

Các hàm thay đổi: Khả thú vị PHP thực hàm có thể biến đổi Một hàm có khả thay đổi lời gọi "động" đến hàm mà tên xác định thời điểm thực thi Mặc dầu không thật cần thiết hầu hết ứng dụng Web, hàm thay đổi giảm kích thước mã độ phức tạp cách đáng kể, thông thường loại bỏ câu lệnh điều kiện if không cần thiết

Ta gọi hàm thay đổi cách gọi tên biến theo sau tập dấu ngoặc đơn( ) Trong dấu ngoặc đơn tập tham số tuỳ chọn nhập vào Hình thức thơng thường hàm thay đổi sau: $function_name();

Ví dụ : sử dụng hàm thay đổi để xác định biến nhập vào //thông điệp chào tiếng Italia

function italian() {

print "Benvenuti al PHP Recipes."; }

// thông điệp chào tiếng Anh function english() {

print "Welcome to PHP Recipes."; }

// gán ngôn ngữ dùng tiếng Italia $language = "italian";

//thực thi hàm thay đổi $language();

Xây dựng thư viện hàm: Các thư viện hàm cách hữu ích để tiết kiệm thời gian xây dựng ứng dụng Ví dụ, bạn viết loạt hàm cho việc xếp mảng Bạn sử dụng lại hàm ứng dụng khác Hơn việc thường xuyên viết lại hay copy dán hàm vào script mới, thật tiện lợi đặt tất hàm liên quan đến việc xếp file phân biệt File chứa tiêu đề dễ dàng nhận ra,chẳng hạn array_sorting.inc Ví dụ sau:

<?

// file: array_sorting.inc

// purpose:thư viện chứa hàm dùng cho việc xếp function merge_sort($array, $tmparray, $right, $left) { }

function bubble_sort($array, $n) { }

function quick_sort($array, $right, $left) { }

?>

(27)

quả theo mục đích cho phép dễ dàng tìm kiếm cần thiết Một bạn xây dựng cho thư viện hàm, bạn sử dụng câu lệnh include() require() PHP để chứa toàn file thư viện vào script làm cho tất hàm có sẵn Cú pháp chung hai câu lệnh sau:

include(path/filename); require(path/filename); hay sau:

include "path/filename"; require "path/filename";

"path":đường dẫn tuyệt đối hay tương đối filename

Giả sử bạn muốn dùng thư viện array_sorting.inc script.Bạn dễ dàng thực sau:

include ("array_sorting.inc");

Bây bạn dễ dàng sử dụng hàm array_sorting.inc $some_array = (50, 42, 35, 46);

//sử dụng phương pháp xếp bubble_sort( ) $sorted_array = bubble_sort($some_array, 1); IV.9 Classes Objects

1 Class: tập hợp biến hàm làm việc với biến Một class định nghĩa theo cú pháp sau:

<?php class Cart {

var $items; // Items in our shopping cart function add_item ($artnr, $num)

{

$this->items[$artnr] += $num; }

function remove_item ($artnr, $num) {

if ($this->items[$artnr] > $num) { $this->items[$artnr] -= $num; return true;

} else { return false; }

} } ?>

Ví dụ định nghĩa class có tên Cart, chứa mảng kết hợp article cart hai hàm dùng để thêm bỏ thứ khỏi cart

Chú ý: PHP 4, có khởi tạo cho biến var cho phép Để khởi tạo biến với giá trị số, bạn cần có hàm khởi tạo gọi cách tự động object dựng từ lớp Chẳng hạn hàm gọi hàm dựng sau:

(28)

class Cart {

var $todays_date = date("Y-m-d"); var $name = $firstname;

var $owner = 'Fred ' 'Jones'; var $items = array("VCR", "TV"); }

class Cart {

var $todays_date; var $name; var $owner; var $items; function Cart() {

$this->todays_date = date("Y-m-d"); $this->name = $GLOBALS['firstname']; /* etc */

} } ?>

2 extends : thường bạn cần lớp với biến hàm tương tự cho một lớp tồn khác Thực tế, tốt bạn định nghĩa lớp chung mà sử dụng đồ án bạn chỉnh sửa lớp cho thích nghi với nhu cầu đồ án Để thực điều này, class mở rộng từ class khác.Việc mở rộng hay dẫn xuất lớp có tất biến hàm lớp cha ( điều xem thừa kế) bạn thêm vào định nghĩa mở rộng Khơng giống ngơn ngữ lập trình hướng đối tượng khác, PHP không hỗ trợ đa thừa kế, lớp mở rộng luôn phụ thuộc vào lớp cha riêng rẻ Các lớp mở rộng sử dụng từ khoá extends Ví dụ:

class Named_Cart extends Cart{ var $owner;

function set_owner ($name){ $this->owner = $name; }

}

Ví dụ định nghĩa lớp Named_Cart mà có tất biến hàm lớp Cart thêm cộng thêm biến $owener hàm set_owner()

3 Hàm dựng : hàm lớp mà tự động gọi bạn tạo một minh hoạ lớp với từ khoá new Trong PHP4, lớp xem hàm dựng có tên với tên lớp mà định nghĩa đó.Ví dụ:

class Auto_Cart extends Cart {

function Auto_Cart() {

$this->add_item ("10", 1); }

(29)

Ví dụ định nghĩa lớp Auto_Cart mà Cart có hàm dựng khởi tạo Auto_Cart gọi từ khố new

Các hàm dựng có đối số đối số tuỳ chọn Để sử dụng lớp mà khơng có tham số, tất tham số đến hàm dựng nên tuỳ chọn cách cung cấp giá trị mặc định Ví dụ sau:

class Constructor_Cart extends Car{

function Constructor_Cart($item = "10", $num = 1){ $this->add_item ($item, $num);

} }

// Shop the same old boring stuff $default_cart = new Constructor_Cart; // Shop for real

$different_cart = new Constructor_Cart("20", 17);

Chú ý: PHP4 lớp khơng có hàm dựng hàm dựng lớp cha gọi tồn tại.Ví dụ:

class A {

function A(){

echo "I am the constructor of A.<br>\n"; }

function B() {

echo "I am a regular function named B in class A.<br>\n"; echo "I am not a constructor in A.<br>\n";

} }

class B extends A{ function C() {

echo "I am a regular function.<br>\n"; }

}

template miễn phí http://localhost/administrator) http://localhost/

Ngày đăng: 11/04/2021, 18:42

Xem thêm:

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w