Computer >> Máy Tính >  >> Lập trình >> PHP

Kiểu PHP tung hứng

Định nghĩa và Cách sử dụng

PHP được biết đến như một ngôn ngữ được đánh máy động. Khai báo kiểu rõ ràng của một biến không cần thiết cũng như không được hỗ trợ trong PHP. Trái ngược với C, C ++ và Java, kiểu của biến PHP được quyết định bởi giá trị được gán cho nó chứ không phải ngược lại. Hơn nữa, một biến khi được gán giá trị kiểu khác, kiểu của nó cũng thay đổi theo. Cách tiếp cận này của PHP để xử lý giá trị thay đổi động của biến được gọi là kiểu tung hứng.

$var="Hello"; // variable is string type
$var=100; //same variable now becomes int

Sự tung hứng kiểu cũng diễn ra trong quá trình tính toán biểu thức. Trong ví dụ này, một biến chuỗi chứa các chữ số được tự động chuyển đổi thành số nguyên để đánh giá biểu thức cộng

Ví dụ

<?php
$var1=100;
$var2="100";
$var3=$var1+$var2;
var_dump($var3);
?>

Đầu ra

Điều này sẽ tạo ra kết quả sau -

int(200)

Nếu một chuỗi bắt đầu bằng các chữ số, thì các ký tự không phải số theo sau nếu có sẽ bị bỏ qua khi thực hiện phép tính. Tuy nhiên, trình phân tích cú pháp PHP đưa ra một thông báo như hình dưới đây

Ví dụ

<?php
$var1=100;
$var2="100 days";
$var3=$var1+var2;
var_dump($var3);
?>

Đầu ra

Điều này sẽ tạo ra kết quả sau -

PHP Notice: A non well formed numeric value encountered in ...
int(200)

Kiểu ép buộc một biến được sử dụng như một kiểu nhất định. Tập lệnh sau hiển thị ví dụ về các toán tử ép kiểu khác nhau

Ví dụ

<?php
$var1=100;
$var2=(boolean)$var1;
$var3=(string)$var1;
$var4=(array)$var1;
$var5=(object)$var1;
var_dump($var2, $var3, $var4, $var5);
?>

Đầu ra

Điều này sẽ tạo ra kết quả sau -

bool(true)
string(3) "100"
array(1) {
   [0]=>
   int(100)
}
object(stdClass)#1 (1) {
   ["scalar"]=>
   int(100)
}

Việc truyền một biến thành chuỗi cũng có thể được thực hiện bằng cách đặt trong chuỗi được trích dẫn kép

Ví dụ

<?php
$var1=100.50;
$var2=(string)$var1;
$var3="$var1";
var_dump($var2, $var3);
?>

Đầu ra

Điều này sẽ tạo ra kết quả sau -

string(5) "100.5"
string(5) "100.5"