Khi lập trình bằng PHP, có thể xảy ra trường hợp bạn phải chuyển đổi một chuỗi thành một số nguyên. Nhưng chúng tôi biết rằng PHP không cần hoặc không hỗ trợ định nghĩa kiểu rõ ràng khi khai báo một biến. Vì vậy, bạn phải buộc một chuỗi được chuyển đổi thành một số nguyên
Chúng ta sẽ xem xét các cách khác nhau để một chuỗi có thể được chuyển đổi thành một số nguyên trong PHP trong bài viết này
Tại sao chúng ta cần chuyển đổi chuỗi thành số nguyên trong PHP?
Đôi khi bạn có thể cần chuyển đổi một chuỗi thành một số nguyên, float hoặc bất kỳ kiểu dữ liệu nào khác. Điều này là do dữ liệu hoặc giá trị bạn đang làm việc có thể thuộc loại dữ liệu khác. Bạn có thể có một số nguyên ở định dạng chuỗi từ người dùng. Vì vậy bạn phải chuyển chuỗi này thành số để thực hiện các thao tác trong chương trình
Sử dụng hàm number_format[]
Hàm number_format[] là một phương thức có sẵn trong PHP được sử dụng để chuyển đổi một chuỗi có hàng nghìn được nhóm lại. Phải mất 4 tham số
chuỗi số_định dạng [ $number, $decimals, $decimalpoint, $sep ]
- $number - Đây là số được định dạng. Nếu bạn không đặt bất kỳ tham số nào khác, số này sẽ được định dạng mà không có bất kỳ số thập phân nào
- $decimals - Đây là tham số tùy chọn được sử dụng để chỉ định số thập phân
- $decimalpoint - Điều này chỉ định chuỗi được sử dụng để đề cập đến dấu thập phân
- $sep - Đây là một chuỗi chỉ định dấu tách hàng nghìn
Nếu phương thức chuyển đổi chuỗi thành công, nó sẽ trả về số được định dạng. Khi thất bại, nó sẽ trả về thông báo lỗi E_WARNING
cú pháp
number_format[$string]; // string into integer
number_format[$string,2]; // string into float
Mã ví dụ
Float Value: '.number_format[$string,2];
}else{
echo 'Not a numaric value';
}
?>
đầu ra
Integer Value: 25
Float Value: 25.00
Giải thích.
Trong chương trình này, một số nguyên ở dạng chuỗi được gán cho một biến gọi là $string. Sau đó, is_numeric[] kiểm tra giá trị của biến và sau đó định dạng nó bằng phương thức number_format[]. nếu giá trị không phải là số, câu lệnh echo sẽ in ra chuỗi “Không phải là giá trị số”.
Sử dụng kiểu truyền kiểu settype[]
Phương thức settype[] được sử dụng để đặt loại biến và sửa đổi loại hiện có của nó
settype[$variable_name, $type]
- $variable – Đây là biến cần được chuyển đổi
- $type – Đây là loại bạn muốn chuyển đổi biến thành
cú pháp
[int]$string; // string into integer
[float]$string; // string into float
[double]$string; // string into double
Mã ví dụ
// Declare string value
$string = '25';
$stringf = '25.99';
$stringd = '25.99';
// Check if string in numaric
if [is_numeric[$string]]{
// Convert string to integer using int type cast
echo 'Integer Value: '.[int]$string;
}else{
echo 'Not a numaric value';
}
// Check if string in numaric
if [is_numeric[$stringf]]{
// Convert string to float using float type cast
echo '
Float Value: '.[float]$stringf;
}else{
echo 'Not a numaric value';
}
// Check if string in numaric
if [is_numeric[$stringf]]{
// Convert string to float using float type cast
echo '
Double Value: '.[double]$stringd;
}else{
echo 'Not a numaric value';
}
đầu ra
Integer Value: 25
Float Value: 25.99
Double Value: 25.99
Giải thích.
Trong đoạn mã này, bạn có thể quan sát thấy rằng kiểu chữ được sử dụng để chuyển đổi chuỗi thành số nguyên. Sau khi đánh giá xem biến đã cho có giá trị chuỗi hay không bằng cách sử dụng phương thức is_numeric, dòng echo 'Integer Value. '. [int]$string; . Tương tự, sau này trong chương trình, các biến được chuyển đổi thành double và float, bằng cách đề cập đến kiểu dữ liệu cùng với tên biến.
Sử dụng hàm intval[] và floatval[]
Hàm intval[] được sử dụng để trả về giá trị nguyên của một biến
int intval [ $var, $base ]
Phải mất hai tham số
- $var – Đây là biến mà bạn muốn chuyển thành số nguyên
- $base – Tham số tùy chọn này chỉ định cơ sở cho chuyển đổi. Nếu $var có 0x làm tiền tố, thì 16 được lấy làm gốc. Nếu $var bắt đầu bằng 0, thì 8 được lấy làm gốc
Phương thức floatval[] được sử dụng để lấy giá trị float của một biến. Chỉ nhận một tham số $var, đó là giá trị mà giá trị float cần được xác định
cú pháp
intval[$string]; // Convert string to integer
floatval[$string]; // Convert string to float
Mã ví dụ
// Declare string value
$string = '25.99';
// Check if string in numaric
if [is_numeric[$string]]{
// Convert string to integer using intval function
echo 'Integer Value: '.intval[$string];
// Convert string to float using floatval function
echo '
Integer Value: '.floatval[$string];
}else{
echo 'Not a numaric value';
}
đầu ra
________số 8Giải thích.
Bạn có thể thấy rằng trong ví dụ này, intval[] chuyển đổi giá trị được lưu trữ trong biến $string thành một số nguyên. Sau đó, cùng một giá trị được chuyển thành float bằng phương thức floatval[].
Thực hiện các phép toán trên giá trị chuỗi
Ở đây, không có hàm dựng sẵn nào được sử dụng để chuyển đổi chuỗi thành số nguyên
Bằng cách thêm số "0" vào chuỗi
cú pháp
[$string + 0];
Mã ví dụ
Float Value: '.number_format[$string,2];
}else{
echo 'Not a numaric value';
}
?>
0đầu ra
Float Value: '.number_format[$string,2];
}else{
echo 'Not a numaric value';
}
?>
1Giải thích.
Đây là một trong những cách dễ nhất để chuyển đổi một chuỗi thành một số nguyên. Trong chương trình này, 0 được thêm vào chuỗi, chuyển đổi nó thành một số. Bằng cách thêm chuỗi bằng 0. 00 giá trị được chuyển thành float. Việc chuyển đổi này được thực hiện bởi PHP một cách tự động.
Bằng cách nhân số "1" thành chuỗi
cú pháp
Float Value: '.number_format[$string,2];
}else{
echo 'Not a numaric value';
}
?>
2Mã ví dụ
Float Value: '.number_format[$string,2];
}else{
echo 'Not a numaric value';
}
?>
3đầu ra
Float Value: '.number_format[$string,2];
}else{
echo 'Not a numaric value';
}
?>
1Giải thích.
Một phương pháp đơn giản khác để chuyển đổi chuỗi thành số nguyên là nhân nó với 1. Vì vậy, chuỗi 25. 23 được nhân với 1 để nhận giá trị nguyên.
Sự kết luận
Tất cả các phương pháp này được áp dụng khi bạn nhận được một số dưới dạng một chuỗi nhưng muốn thực hiện một số phép toán trên đó. Mặc dù các phương thức ép kiểu intval[], float[], number_format[] và kiểu rất hiệu quả, nhưng việc thêm 0 và nhân 1 vào một chuỗi là một cách rất nhanh để chuyển đổi nó thành một số