PHP bir dizeye bir tamsayı dönüştürme

11 Cevap php

PHP bir dizeye bir tamsayı dönüştürmek için bir yolu var mı?

11 Cevap

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.

$foo = 5;

$foo = $foo . "";

şimdi $foo bir dizedir.

Ancak, döküm alışmak isteyebilirsiniz. Döküm bu tür bir şey başarmak için doğru yoludur.

$foo = 5;    
$foo = (string)$foo;

Başka bir yolu tırnak içinde saklanması için:

$foo = 5;
$foo = "$foo"

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.

$intValue = 1; 
$string = sprintf('%d',$intValue ); 

ya da olabilir:

$string = (string)$intValue ; 

veya:

settype(&$intValue ,'string');  

Ya dönemi operatörünü kullanmak ve buna bir dizeyi bağlamak (ve bir dizeye döküm tip olacaktır) olabilir:

$integer = 93;
$stringedInt = $integer."";

Ya da, daha doğrusu, sadece bir dize tamsayı döküm yazabilirsiniz:

$integer = 93;
$stringedInt = (string) $integer;

İş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 .

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.

$integer = 93;
$stringedInt = $integer.'';

daha hızlı

$integer = 93;
$stringedInt = $integer."";