PHP'de bir tamsayıyı dizeye dönüştürmenin bir yolu var mı?
strval()
da değiştirmez $variable
.
PHP'de bir tamsayıyı dizeye dönüştürmenin bir yolu var mı?
strval()
da değiştirmez $variable
.
Yanıtlar:
strval()
Bir sayıyı dizeye dönüştürmek için işlevi kullanabilirsiniz .
Bir bakım perspektifinden bakıldığında, diğer daha ezoterik cevaplardan ziyade ne yapmaya çalıştığınız açıktır. Tabii ki, durumunuza bağlıdır.
$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)
dönüşlerinde onları yuvarlar 1
.
Bunu yapmanın birçok yolu var.
İki örnek:
$str = (string) $int;
$str = "$int";
Daha fazla bilgi için Türler Dönüşümü hakkında PHP Kılavuzuna bakın .
0
için ""
kötü olmaz kudretini; gerçekten uygulamaya bağlıdır. İyi bir noktaya değindin.
$foo = 5;
$foo = $foo . "";
Şimdi $foo
bir dize.
Ancak, döküm yapmaya alışmak isteyebilirsiniz. Döküm, bu tür bir şeyi başarmanın doğru yolu olduğundan:
$foo = 5;
$foo = (string)$foo;
Başka bir yol tırnak içine almaktır:
$foo = 5;
$foo = "$foo"
Bir tamsayıyı PHP'de bir dizeye "dönüştürmenin" birkaç yolu vardır.
Geleneksel bilgisayar bilimi yolu, değişkeni bir dize olarak kullanmak 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";
PHP'nin örtük tür dönüşümü ve dize enterpolasyonundan da yararlanabilirsiniz:
$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ıdakine benzer şekilde, bir dizeyi kabul eden ve döndüren herhangi bir işlev dönüştürmek ve tamsayı için kullanılabilir. Aşağıdakileri göz önünde bulundur:
$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çeneği tavsiye etmem, ama vahşi bu davranışa dayanıyordu kod gördüm, bu yüzden birlikte geçireceğini düşündüm.
Tüm bu cevaplar harika, ancak değer sıfırsa hepsi size boş bir dize döndürür.
Takip etmeyi dene:
$v = 0;
$s = (string)$v ? (string)$v : "0";
Nokta operatörünü kullanabilir ve bir dizeyi ona dizeleyebilirsiniz (ve bir dizeye dökülür):
$integer = 93;
$stringedInt = $integer . "";
Ya da, daha doğru bir şekilde, tamsayıyı bir dizeye cast yazabilirsiniz:
$integer = 93;
$stringedInt = (string) $integer;
Buradaki cevapların güzel gösterdiği gibi, evet, birkaç yol var. Bununla birlikte, PHP'de nadiren bunu yapmanız gerekir. PHP'yi yazmanın "dogmatik yolu", dilin türü gerektiği gibi zorlayan şeffaf yazım sistemine güvenmektir. Tam sayı değerleri için, bu genellikle sorunsuzdur. Yine de kayan nokta değerlerine çok dikkat etmelisiniz.
strlen(12345);
ama için $x = 12345; echo $x[2];
All bu döküm fonksiyonları oldukça yararlıdır ve programcılar çok daha onların türlerini kontrol ediyoruz.
Sadece aşağıdakileri kullanabilirsiniz:
$intVal = 5;
$strVal = trim($intVal);
Bağlama bağlı olduğunu söyleyebilirim. strval () veya döküm operatörü (dize) kullanılabilir. Ancak, çoğu durumda PHP, örneğin yankı veya printf ile kullanırsanız sizin için neyin iyi olduğuna karar verecektir ...
Küçük bir not: die () bir dizeye ihtiyaç duyar ve herhangi bir int göstermez :)
$amount = 2351.25;
$str_amount = "2351.25";
$strCorrectAmount = "$amount";
echo gettype($strCorrectAmount); //string
Yani yankı dönüş dizesi olacak .
$integer = 93;
$stringedInt = $integer.'';
daha hızlı
$integer = 93;
$stringedInt = $integer."";
echo
( dize bağlamında kullanıldığında ).