Quên mật khẩu

Đăng ký


You are not connected. Please login or register

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down  Thông điệp [Trang 1 trong tổng số 1 trang]


Bài 2 - Mục 3: Các kiểu dữ liệu quan trọng khác



Tiếp sau mục 2: Các kiểu dữ liệu cơ bản, tớ xin giới thiệu thêm một vài kiểu dữ liệu quan trọng khác của PHP: Mảng, Đối tượng, Null và Resource (sozy vì 2 kiểu cuối ko rõ dịch như thế nào)

1. Mảng (array)

Mảng được sử dụng khi bạn muốn lưu trữ một số lượng lớn các biến. Một ví dụ hết sức đơn giản: Một lớp có 50 học sinh, và bạn muốn quản lý cả 50 học sinh đó. Để đại diện cho một học sinh, tất nhiên bạn sẽ muốn 1 biến. Nhưng nếu đặt tên là hs1, hs2, ... hs50 thì quả là quá mất thời gian! Và đây chính là lý do để mảng có "đất dụng võ".

Mảng chứa rất nhiều giá trị (value), mỗi giá trị được truy cập nhờ khóa (key). Khóa có thể chỉ là những số đếm thông thường như 1, 2, 3, hay có thể là xâu, như "abc", "def", "ghi". Mảng có khóa là xâu như vậy được gọi là associative array.

Để khai báo một mảng, chúng ta có thể sử dụng cách như ví dụ sau:

PHP Code:

$a = array(1, 2, 3, 4);
$b = array("a", "b", "c");
$c = array(1, "a", array(3, 4));
?>


Như ở ví dụ trên, $a, $b, $c đều là mảng. Mảng $a chứa các số từ 1 đến 4, mảng $b chứa các xâu "a", "b", "c". Còn mảng $c sành điệu hơn, chứa cả số lẫn xâu, thêm cả một mảng ở bên trong nó nữa.

Sau khi khởi tạo giá trị trong mảng $a, mặc định mỗi phần tử (element) trong nó sẽ được gán cho một khóa là số nguyên. Nó bắt đầu từ 0, ko phải là 1. Do đó, phần tử thứ 0 sẽ là 1, thứ 1 sẽ là 2, vân vân.

Ví dụ:

PHP Code:

echo $a[2];
?>


Sẽ in ra màn hình giá trị 3 - tức là phần tử mang khóa là 2 trong mảng $a.

Như tớ đã nói ở trên, một khóa có thể là một xâu, nghĩa là người ta có thể truy cập mảng $d (chẳng hạn) bằng cách dùng $d["blah"]. Vậy ta khởi tạo giá trị của $d như thế nào?

Rất đơn giản, ta sử dụng toán tử (operator) =>

PHP Code:

$d = array("blah" => 1, "abc" => 2, "def" => "ghi");
?>


Có thể dễ dàng đoán được: Nếu dùng lệnh echo $d["def"] sẽ cho ra kết quả là "ghi".

Tìm hiểu sâu thêm về Mảng, kiểu dữ liệu mạnh mẽ của PHP, sẽ là phần việc của một Bài học sau này.

Đối tượng (object)

PHP5 là một ngôn ngữ lập trình hướng đối tượng (OO - Object Oriented). Nói một cách đơn giản nhất (nhưng vẫn nghe ù tai nếu bạn chưa nghe về đối tượng bao giờ) thì lập trình hướng đối tượng (OOP - Object Oriented Programming) là việc tạo ra một kiểu dữ liệu mới (đối tượng - object hay lớp - class). Thay vì việc phải tạo một dãy các hàm liên quan đến đối tượng đó, bạn sử dụng thuộc tính (properties) và phương thức (method) trực tiếp của đối tượng ý.

Hãy nhắm mắt vào tưởng tượng. Bạn có một quả bóng bay. Quả bóng ý có những thuộc tính gì? À, rất đơn giản thôi: Đó có thể là kích thước, màu sắc hay độ căng - xẹp của bóng.

Còn phương thức: Quả bóng có thể căng lên, hoặc xẹp đi. Rất dễ dàng phải ko?

Giờ hãy tưởng tượng, bạn có một đối tượng mang tên QB (quả bóng ). Để tạo ra một quả bóng, bạn dùng lệnh:

PHP Code:

$bong = new QB();
?>


Quả bóng có kích thước (KT), màu sắc (MS) và độ căng - xẹp (CX). Để $bong mang màu đỏ, bạn có thể viết:

PHP Code:

$bong->MS = red;
?>


Tương tự, nói đến kích thước, độ căng - xẹp của quả bóng, ta có thể dùng $bong->KT, $bong->CX.

Thế còn phương thức? Như đã nói, quả bóng có thể căng lên (CL) hoặc xẹp đi (XD). Để thực thi các phương thức này, ta làm như ví dụ sau:

PHP Code:

$bong->CL();
?>


Tạm dừng việc "cưỡi ngựa xem hoa" phần đối tượng tại đây.

3. Null

Một biến được coi là NULL (ko có giá trị) nếu nó thỏa mãn cả 3 điều kiện sau:
1. Nó được gán là NULL (ko phân biệt hoa thường)
2. Nó chưa bao giờ "được" (hay "bị") gán giá trị.
3. Nó đã bị "xử đẹp" bằng unset - hàm hủy bỏ các biến chỉ định.

Để kiểm tra một biến có là NULL hay ko, ta có thể sử dụng hàm is_null(biến). Ví dụ:

PHP Code:

$test = NULL;
echo is_null($test);
?>


Cho ra kết quả là 1.

4. Resource

Có những lúc PHP cần xử lý các đối tượng như kết nối cơ sở dữ liệu hay các đối tượng của hệ điều hành. Chúng sẽ được coi là resource.

Nói chung trong hầu hết các trường hợp, bạn thậm chí ko nhận ra việc mình có phải đang làm việc với resource hay ko.

identical(UDS)


Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang  Thông điệp [Trang 1 trong tổng số 1 trang]

Permissions in this forum:
Bạn không có quyền trả lời bài viết