Hướng dẫn dùng syntax example trong PHP
Có một số yêu cầu cơ bản đối với các ngôn ngữ lập trình như là: Cần một nơi để lưu trữ data, quản lý flow program, đánh giá biểu thức, quản lý file, và text output ... Vv. Và PHP có đáp ứng được tất cả những thứ này, cộng thêm nó có support các câu lệnh như else hay elseif giúp ta điều khiển program một cách dễ dàng. Tuy nhiên, ngay cả khi ta dùng những thứ này thì việc lập trình vẫn sẽ trở nên khá tốn công và buồn chán, đặc biệt khi bạn phải viết lại các đoạn code giống nhau mỗi
khi cần dùng chúng. Show Nội dung chính
Ngoài ra, một object kết hợp với một hay nhiều funtion, và dữ liệu chúng sử dụng trong một cấu trúc duy nhất gọi là một class.
PHP FunctionsPHP có hàng trăm các functions được
tích hợp sẵn, làm nó trở thành một ngôn ngữ rất tiện ích và phong phú. Để sử dụng function, hãy gọi nó ra thông qua tên. Ví dụ, bạn có thể xem function date dưới đây:
Ta có thể tiếp tục xem một số function tích hợp sẵn, yêu cầu một hay nhiều argument đầu vào như dưới đây: echo strrev(" .dlrow olleH"); // Reverse string echo str_repeat("Hip ", 2); // Repeat string echo strtoupper("hooray!"); // String to upper case ?>Ví dụ trên đã sử dụng 3 string function để ouput ra đoạn text dưới đây: Defining a FunctionCú pháp chung cho việc define một function như sau: Ý nghĩa của dòng đầu tiên như sau:
Ngoài ra, tên function sẽ không phân biệt chữ hoa - thường, vì vậy tất cả các string sau đều tham chiếu tới print function: PRINT, Print, và PrInT. Returning a ValueTa cùng nhau xem một function đơn giản dưới đây giúp convert fullname của peron thành lowercase và thực hiện viết hoa chữ cái đầu tiên. Ta có output như sau: Ta có output như sau:
Tóm lại, PHP đã thực thi biểu thức từ trong ra ngoài. Và biểu thức dưới đây cũng hoạt động theo trình tự tương tự: Ta thu được output như sau: Returning an ArrayTrước version PHP 5.3, ta có thể mở đầu một biến bằng ký tự & tại thời điểm gọi funcion (ví dụ, increment(&$myvar);) để yêu cầu trình phân tích truyền một tham chiếu tới biến, chứ không phải giá trị của biến. Điều này đã cho phép một function truy cập vào biến (cho phép các giá trị khác nhau được ghi ngược lại vào nó)
Tuy nhiên, trong chỗ định nghĩa function, bạn vẫn có thể tiếp tục truy cập các đối số thông qua tham chiếu. Khái niệm này có thể hơi khó hiểu chút, do đó ta sẽ cùng quay lại với ví dụ về hộp diêm ở các bài viết trước. Sau đây ta sẽ viết lại ví dụ về function fix_names bên trên để truyền các tham chiếu cho tất cả các tham số, và sau đó function có thể chỉnh sửa trực tiếp các tham số này. $a1 = "WILLIAM"; $a2 = "henry"; $a3 = "gatES"; echo $a1 . " " . $a2 . " " . $a3 . " "; fix_names($a1, $a2, $a3); echo $a1 . " " . $a2 . " " . $a3; function fix_names(&$n1, &$n2, &$n3) { $n1 = ucfirst(strtolower($n1)); $n2 = ucfirst(strtolower($n2)); $n3 = ucfirst(strtolower($n3)); } ?> Thay vì truyền trực tiếp các string vào function, đầu tiên ta sẽ gán nó tới các biến, và in nó ra để xem giá trị đầu tiên của nó trước đã. Sau đó, ta
gọi tới function như bình thường, có điều đặc biệt là ở chỗ định nghĩa function ta sẽ đặt thêm ký tự & ở trước mỗi tham số mà sẽ thực hiện truyền tham chiếu. Như bạn thấy cả 2 câu lệnh echo chỉ sử dụng giá trị của $a1, $a2, và $a3. Returning Global VariablesCó một cách tốt hơn để cho phép funcion truy cập một biến được tạo phía bên ngoài đó là khai báo nó có có quyền truy cập global từ bên trong của function. Theo sau từ khoá global là tên biến, cho phép mọi phần trong code của bạn có full quyền truy cập. "; fix_names(); echo $a1 . " " . $a2 . " " . $a3; function fix_names() { global $a1; $a1 = ucfirst(strtolower($a1)); global $a2; $a2 = ucfirst(strtolower($a2)); global $a3; $a3 = ucfirst(strtolower($a3)); } ?> Giờ đây bạn không phải truyền các tham số cho function nữa. Sau khi được khai báo, các biến này sẽ giữ lại quyền truy cập global, và được sẵn sàng truy cập trong mọi phần còn lại của program, bao gồm cả functions của nó. Recap of Variable ScopeĐể nhớ lại kiến thức, tôi sẽ tóm tắt lại kiến thức quan trọng về Variable Scope:
"; } keep_track(); keep_track(); keep_track(); ?> Ta thu được kết quả như sau: 1 2 3Including and Requiring FilesKhi đã quen thuộc hơn với việc lập trình PHP, có thể bạn sẽ muốn build một library các functions mà bạn nghĩ sẽ cần dùng
lại nó trong tương lại. Hoặc có thể bạn muốn sử dụng các library sẵn có do các lập trình viên khác đã viết. The include StatementKhi dùng include, bạn sẽ yêu cầu PHP fetch về một file cụ thể và load tất cả nội dung của nó. Nó giống như thể là bạn paste một included file vào file hiện tại. Dưới đây là cách ta include một file tên là library.php. include "library.php"; // Your code goes here ?>Using include_onceMỗi khi bạn đưa ra yêu cầu include, nó sẽ include lại file được đã được yêu cầu include, ngay cả khi bạn đã insert nó rồi. Ví dụ, giả sử rằng file library.php chứa rất nhiều function hữu ích, và bạn include nó vào file, nhưng bạn cũng include một library khác - đang include library.php. Do đó, bạn đã vô tình include file library.php 2 lần. Điều này sẽ gây ra message lỗi, vì bạn đang cố gắng define cùng một constant hay function nhiều lần. Do vậy, bạn nên sử dụng include_once để thay thế cho include. include_once "library.php"; // Your code goes here ?>Sau đó thì dù bạn có cố gắng include file trùng nhau đi nữa (bằng include hoặc include_once) thì nó cũng sẽ được bỏ qua. Để xác định liệu requested file có được executed hay không, thì absolute file path sẽ được matched sau khi relative paths được giải quyết và file được tìm thấy trong include path.
Using require and require_onceMột vấn đề tiềm ẩn đối với include và include_onceđó là PHP chỉ "cố gắng" include file được yêu cầu. Program sẽ vẫn tiếp tục chạy cho dù file không được tìm thấy. Hết. Chúng ta sẽ cùng nhau tìm hiểu các chủ đề khác về
PHP ở các bài viết lần tới nhé. |