PHP bir dizeye bir tamsayı dönüştürmek için bir yolu var mı?
Bir dize için bir dizi dönüştürmek strval()
işlevini kullanabilirsiniz.
Bir bakım açısından bakıldığında onun yerine başka daha ezoterik cevaplar biraz daha yapmak için çalışıyoruz ne ortada. Tabii ki, bu koşullara bağlıdır.
$var = 5;
echo "I'd like {$var} waffles"; // = "I'd like 5 waffles
$var_to_string = mysql_real_escape_string($var);
$query = "SELECT * FROM `table` WHERE `id`='{$var_to_string}'";
$query = "SELECT * FROM `table` WHERE `id`='".mysql_real_escape_string($var)."'"; // using concat
$items = (string)$var; // $items == "5";
$items = strval($var); // $items == "5";
Bunların hepsi aynı sonucu vermesi gerekir.
Bunu yapmanın birçok yolu var.
İki örnek:
$str = (string) $int;
$str = "$int";
Types Juggling daha üzerinde PHP Manual bakın.
PHP bir dizeye bir tamsayı "dönüştürmek" için bir kaç yolu vardır.
Geleneksel CS yolu bir dize olarak değişken döküm olacaktır
$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";
Ayrıca PHP'nin örtülü türü dönüştürme ve dize enterpolasyon yararlanabilir
$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";
Son olarak, yukarıda benzer bir dize kabul eder ve döndürür herhangi bir fonksiyon dönüştürmek ve tamsayı için kullanılan olabilir. Aşağıdaki düşünün
$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";
Ben son seçenek tavsiye etmem, ama bu davranış dayanıyordu vahşi kod gördük, bu yüzden ben bunu iletmekten diye düşündüm.
İşte Chris Thompson cevabın bir canlı özellikli versiyonu
http://init.me/186784/converting-an-integer-to-a-string-in-php (yeni sekmede açmak için sağ tıklayın)
<?php
$var = 5;
echo "I'd like {$var} waffles"; // = "I'd like 5 waffles
$var_to_string = mysql_real_escape_string($var);
$query = "SELECT * FROM `table` WHERE `id`='{$var_to_string}'";
$query = "SELECT * FROM `table` WHERE `id`='".mysql_real_escape_string($var)."'"; // using concat
$items = (string)$var; // $items == "5";
$items = strval($var); // $items == "5";
?>
Birçok olası dönüşüm yolu vardır:
$input => 123
sprintf('%d',$input) => 123
(string)$input => 123
strval($input) => 123
settype($input, "string") => 123
Bu servisi kullanarak denenebilir PHP Convert Online em>.
Ben bağlamında bağlıdır söyleyebilirim. Die: strval () veya döküm operatörü (string) kullanılır olabilir, ancak çoğu durumda PHP örneğin yankı ya da printf ile kullanmak eğer ... Bir küçük not neyin sizin için iyi, karar verecek () bir dize ihtiyaçları ve herhangi bir int göstermez :)
Burada cevaplar güzel gösterdiği gibi, evet, çeşitli yolları vardır. Ancak, PHP nadiren gerçekten bunu yapmak gerekir. PHP yazmak için "dogmatik yol" gerektiği gibi şeffaf türünü zorlamak olacaktır dilin gevşek yazarak sistemine güvenmek olduğunu. Tamsayı değerleri için, bu sorun olmadan genellikle. Eğer olsa, kayan nokta değerleri ile çok dikkatli olmalıdır.