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

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:

<?php
$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:

<?php
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:

<?php
$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:

<?php
$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:

<?php
$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:

<?php
$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:

<?php
$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)

 

  1. Leave a comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: