Apakah ada cara untuk mengkonversi integer ke string di PHP?
strval()
tidak mengubah $variable
internal juga.
Apakah ada cara untuk mengkonversi integer ke string di PHP?
strval()
tidak mengubah $variable
internal juga.
Jawaban:
Anda dapat menggunakan strval()
fungsi ini untuk mengonversi angka menjadi string.
Dari perspektif pemeliharaan jelas apa yang Anda coba lakukan daripada beberapa jawaban yang lebih esoteris lainnya. Tentu saja, itu tergantung pada konteks Anda.
$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)
mengembalikan 1
.
Ada banyak cara untuk melakukan ini.
Dua contoh:
$str = (string) $int;
$str = "$int";
Lihat Manual PHP tentang Jenis Juggling untuk informasi lebih lanjut.
0
menjadi ""
tidak buruk; itu sangat tergantung pada aplikasi. Yang mengatakan, Anda membuat poin yang bagus.
$foo = 5;
$foo = $foo . "";
Sekarang $foo
adalah sebuah string.
Tapi, Anda mungkin ingin terbiasa dengan casting. Karena casting adalah cara yang tepat untuk mencapai sesuatu seperti itu:
$foo = 5;
$foo = (string)$foo;
Cara lain adalah dengan merangkum dalam kutipan:
$foo = 5;
$foo = "$foo"
Ada beberapa cara untuk "mengkonversi" integer ke string di PHP.
Cara ilmu komputer tradisional adalah dengan melemparkan variabel sebagai string:
$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";
Anda juga dapat memanfaatkan konversi tipe implisit PHP dan interpolasi string:
$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";
Akhirnya, mirip dengan yang di atas, fungsi apa pun yang menerima dan mengembalikan string dapat digunakan untuk mengkonversi dan integer. Pertimbangkan yang berikut ini:
$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";
Saya tidak akan merekomendasikan opsi terakhir, tetapi saya telah melihat kode di alam liar yang mengandalkan perilaku ini, jadi saya pikir saya akan meneruskannya.
Semua jawaban ini bagus, tetapi mereka semua mengembalikan Anda string kosong jika nilainya nol.
Coba yang berikut ini:
$v = 0;
$s = (string)$v ? (string)$v : "0";
Anda bisa menggunakan operator periode dan menggabungkan string ke dalamnya (dan itu akan diketik ke string):
$integer = 93;
$stringedInt = $integer . "";
Atau, lebih tepatnya, Anda cukup mengetikkan integer ke string:
$integer = 93;
$stringedInt = (string) $integer;
Karena jawaban di sini menunjukkan dengan baik, ya, ada beberapa cara. Namun, dalam PHP Anda jarang benar-benar perlu melakukan itu. "Cara dogmatis" untuk menulis PHP adalah mengandalkan sistem pengetikan longgar bahasa, yang secara transparan akan memaksa jenis itu sesuai kebutuhan. Untuk nilai integer, ini biasanya tanpa masalah. Anda harus sangat berhati-hati dengan nilai floating point.
strlen(12345);
tetapi tidak untuk $x = 12345; echo $x[2];
Semua fungsi casting ini cukup berguna dan banyak programmer memeriksa tipe mereka lebih dan lebih.
Saya akan mengatakan itu tergantung pada konteksnya. strval () atau operator casting (string) dapat digunakan. Namun, dalam kebanyakan kasus, PHP akan memutuskan apa yang baik untuk Anda jika, misalnya, Anda menggunakannya dengan gema atau printf ...
Satu catatan kecil: die () membutuhkan string dan tidak akan menampilkan int :)
$amount = 2351.25;
$str_amount = "2351.25";
$strCorrectAmount = "$amount";
echo gettype($strCorrectAmount); //string
Jadi gema akan mengembalikan string .
$integer = 93;
$stringedInt = $integer.'';
lebih cepat dari
$integer = 93;
$stringedInt = $integer."";
echo
itu (digunakan dalam konteks string yang disebut ).