Chuyển đổi giữa các kiểu dữ liệu ( ép kiểu )


tự học php cơ bản 31/08/2015 Cùng chuyên mục

Đôi khi bạn muốn sử dụng giá trị của biến có kiểu integer, được sử dụng như kiểu boolean. Ép kiểu - cho phép làm điều đó, giúp cho việc sử dụng biến trở nên linh động.

Cú pháp chung:

$ten_bien= (kieu_du_lieu)<giá trị>;

Trong đó:

  • $ten_bien: là biến nhận giá trị mới
  • <giá trị>: có thể là giá trị trực tiếp như 1, 2,3 ... hoặc nhận từ biến 
  • kieu_du_lieu: là kiểu dữ liệu sẽ được chuyển sang, như int, float, bool,string...

Ví dụ 1: Chuyển kiểu giá trị biến $a, kiểu dữ liệu int sang kiểu dữ liệu boolean, float, string

<?php
$a = 1;
//xem kiểu dữ liệu của biến $a
var_dump($a);
// chuyển kiểu dữ liệu của biến $a sang boolean gán cho biến $b
$b = (bool)$a;
var_dump($b);
//chuyển dữ liệu sang kiểu string
$b = (string)$a;
var_dump($b);
//thực hiện phép nối chuỗi với biến $b
$b .= " bây giớ là một chuỗi";
echo $b;
?>

 Chuyển kiểu dữ liệu khác thành kiểu boolean:

Để ép kiểu ( một giá trị khác thành giá trị kiểu boolean) một giá trị sang kiểu boolean sử dụng khai báo:
(bool) <giá trị> hoặc (boolean) <giá trị>
- Kiểu string rỗng ''''...sẽ có giá trị FALSE, còn lại là TRUE
- Kiểu integer giá trị 0 được xác định tương đương với kiểu boolean là FALSE, còn lại là TRUE
- Kiểu số thực giá trị 0.0 được xác định tương đương với kiểu boolean là FALSE, còn lại là TRUE
- Mảng chưa có phần tử
Ví dụ 2: chuyển kiểu dữ liệu string, integer, float, array sang boolean

<?php
var_dump((bool) "");        // kết quả: bool(false)
var_dump((bool) 1);         //kết quả: bool(true)
var_dump((bool) -2);        // kết quả: bool(true)
var_dump((bool) "foo");     // kết quả: bool(true)
var_dump((bool) 2.3e5);     // kết quả: bool(true)
var_dump((bool) array(12)); // kết quả: bool(true)
var_dump((bool) array());   // kết quả: bool(false)
var_dump((bool) "false");   // kết quả: bool(true)
?>

 Ví dụ 3: Nếu biến là số khác 0 thì xuất ra ' {giá trị biến} ', ngược lại thì xuất ra 'zero'

<?php
$a = 0;
$b = 1;
function xuat_bien($x = 0)
{
   if($x)
{
   echo $x;
}
else
{
  echo 'zero';
}
return null;
}
xuat_bien($a); //kết quả: zero
xuat_bien($b); //kết quả: 1
?>

 Ở đây, các biến có kiểu int - khi sử dụng trong biểu thức logic, nó sẽ được chuyển sang kiểu boolean

Chuẩn hóa dữ liệu

Biến trong php có thể nhận dữ liệu ở nhiều kiểu khác nhau nhưng trong quá trình sử dụng chúng ta cần sử dụng dữ liệu được chuẩn hóa nhằm đảm bảo tính toàn vẹn, đồng bộ dẫn tới việc phải ép kiểu dữ liệu nhận được và xuất ra đúng kiểu dữ liệu. Ví dụ, chèn dữ liệu nhận được từ form người dùng ( sẽ có dạng string) vào cơ sở dữ liệu - với trường dữ liệu có kiểu số nguyên => phải ép kiểu dữ liệu nhận được từ form người dùng này sang dạng số nguyên. Thêm vào đó, các kiểu dữ liệu khác nhau có các phương thức ( phép toán, hàm xử lý...) khác nhau, chuẩn hóa kiểu dữ liệu còn giúp cho việc sử dụng dữ liệu được thống nhất - kiểm soát được dòng dữ liệu => đảm bảo chất lượng cho chương trình. 


Bài cùng chuyên mục:




Bình luận:


php