Có cách nào để chuyển đổi một số nguyên thành một chuỗi trong PHP không?
strval()
không thay đổi $variable
nội bộ.
Có cách nào để chuyển đổi một số nguyên thành một chuỗi trong PHP không?
strval()
không thay đổi $variable
nội bộ.
Câu trả lời:
Bạn có thể sử dụng strval()
hàm để chuyển đổi một số thành một chuỗi.
Từ góc độ bảo trì, rõ ràng những gì bạn đang cố gắng làm hơn là một số câu trả lời bí truyền khác. Tất nhiên, nó phụ thuộc vào bối cảnh của bạn.
$var = 5;
// Inline variable parsing
echo "I'd like {$var} waffles"; // = "I'd like 5 waffles
// String concatenation
echo "I'd like ".$var." waffles"; // I'd like 5 waffles
// Explicit cast
$items = (string)$var; // $items === "5";
// Function call
$items = strval($var); // $items === "5";
strval(0.999999997)
return 1
.
Có nhiều cách để làm điều này.
Hai ví dụ:
$str = (string) $int;
$str = "$int";
Xem Hướng dẫn PHP về các kiểu tung hứng để biết thêm.
0
sang ""
có thể không phải là xấu; nó thực sự phụ thuộc vào ứng dụng. Điều đó nói rằng, bạn làm cho một điểm tốt.
$foo = 5;
$foo = $foo . "";
Bây giờ $foo
là một chuỗi.
Nhưng, bạn có thể muốn làm quen với việc đúc. Vì đúc là cách thích hợp để thực hiện một cái gì đó thuộc loại đó:
$foo = 5;
$foo = (string)$foo;
Một cách khác là gói gọn trong dấu ngoặc kép:
$foo = 5;
$foo = "$foo"
Có một số cách để "chuyển đổi" một số nguyên thành một chuỗi trong PHP.
Cách khoa học máy tính truyền thống sẽ là biến biến thành một chuỗi:
$int = 5;
$int_as_string = (string) $int;
echo $int . ' is a '. gettype($int) . "\n";
echo $int_as_string . ' is a ' . gettype($int_as_string) . "\n";
Bạn cũng có thể tận dụng chuyển đổi kiểu ẩn và nội suy chuỗi của PHP:
$int = 5;
echo $int . ' is a '. gettype($int) . "\n";
$int_as_string = "$int";
echo $int_as_string . ' is a ' . gettype($int_as_string) . "\n";
$string_int = $int.'';
echo $int_as_string . ' is a ' . gettype($int_as_string) . "\n";
Cuối cùng, tương tự như trên, bất kỳ hàm nào chấp nhận và trả về một chuỗi có thể được sử dụng để chuyển đổi và số nguyên. Hãy xem xét những điều sau đây:
$int = 5;
echo $int . ' is a '. gettype($int) . "\n";
$int_as_string = trim($int);
echo $int_as_string . ' is a ' . gettype($int_as_string) . "\n";
Tôi sẽ không đề xuất tùy chọn cuối cùng, nhưng tôi đã thấy mã trong tự nhiên dựa vào hành vi này, vì vậy tôi nghĩ rằng tôi sẽ vượt qua nó.
Tất cả những câu trả lời này đều tuyệt vời, nhưng tất cả đều trả về cho bạn một chuỗi trống nếu giá trị bằng 0.
Hãy thử như sau:
$v = 0;
$s = (string)$v ? (string)$v : "0";
Có nhiều cách chuyển đổi có thể:
$input => 123
sprintf('%d',$input) => 123
(string)$input => 123
strval($input) => 123
settype($input, "string") => 123
Bạn có thể sử dụng toán tử dấu chấm và nối một chuỗi với nó (và nó sẽ được gõ thành một chuỗi):
$integer = 93;
$stringedInt = $integer . "";
Hay chính xác hơn, bạn chỉ có thể nhập cast số nguyên thành một chuỗi:
$integer = 93;
$stringedInt = (string) $integer;
Như các câu trả lời ở đây thể hiện độc đáo, vâng, có một số cách. Tuy nhiên, trong PHP bạn hiếm khi thực sự cần phải làm điều đó. "Cách giáo điều" để viết PHP là dựa vào hệ thống gõ lỏng lẻo của ngôn ngữ, điều này sẽ ép buộc loại trong suốt khi cần. Đối với các giá trị nguyên, điều này thường không có rắc rối. Bạn nên rất cẩn thận với các giá trị dấu phẩy động, mặc dù.
strlen(12345);
nhưng không phải cho $x = 12345; echo $x[2];
tất cả các chức năng truyền này khá hữu ích và rất nhiều lập trình viên đang kiểm tra loại của họ ngày càng nhiều.
Tôi muốn nói rằng nó phụ thuộc vào bối cảnh. strval () hoặc toán tử đúc (chuỗi) có thể được sử dụng. Tuy nhiên, trong hầu hết các trường hợp, PHP sẽ quyết định điều gì tốt cho bạn nếu, ví dụ, bạn sử dụng nó với echo hoặc printf ...
Một lưu ý nhỏ: die () cần một chuỗi và sẽ không hiển thị bất kỳ int :)
$amount = 2351.25;
$str_amount = "2351.25";
$strCorrectAmount = "$amount";
echo gettype($strCorrectAmount); //string
Vì vậy, tiếng vang sẽ là chuỗi trả về .
$integer = 93;
$stringedInt = $integer.'';
nhanh hơn
$integer = 93;
$stringedInt = $integer."";
echo
nó (được sử dụng trong cái gọi là bối cảnh chuỗi ).