Nasıl dize için bir PHP değişkenin değeri dönüştürebilirim?
Ben boş bir dize ile birleştirerek daha iyi bir şey arıyordu:
$myText = $myVar . '';
Java ToString()
yöntemi ya. Net gibi.
Sen kullanabilirsiniz casting operators:
$myText = (string)$myVar;
Booleans ve null için özel taşıma dahil PHP kılavuzun Strings section, dize döküm ve dönüşüm için daha fazla ayrıntı vardır.
Bu tiplemeleri ile yapılır:
$strvar = (string) $var; // Casts to string
echo $var; // Will cast to string implicitly
var_dump($var); // Will show the true type of the variable
Bir sınıfta sen büyülü yöntemi __toString
a> kullanarak çıkış ne olduğunu tanımlayabilirsiniz. Bir örnek aşağıda verilmiştir:
class Bottles {
public function __toString()
{
return 'Ninety nine green bottles';
}
}
$ex = new Bottles;
var_dump($ex, (string) $ex);
// Returns: instance of Bottles and "Ninety nine green bottles"
Biraz daha tip döküm örnekler:
$i = 1;
// int 1
var_dump((int) $i);
// bool true
var_dump((bool) $i);
// string "1"
var_dump((string) 1);
How do I convert the value of a PHP variable to string?
Bir değer (string) cast veya strval() işlevini kullanarak bir dize dönüştürülebilir. (Edit: Thomas da belirtildiği gibi).
Bir dize olarak kullandığınız zaman o da sizin için otomatik döküm olmalıdır.
Bu, size strval için ne arıyor olabilir
dize strval (mixed $ var)
Get the string value of a variable. See the documentation on string for more information on converting to string.
This function performs no formatting on the returned value. If you are looking for a way to format a numeric value as a string, please see sprintf() or number_format().
Thomas G. Mayfield tarafından verilen cevap ek olarak:
Eğer dize döküm kılavuzuna linki takip ederseniz, anlamak oldukça önemlidir özel bir durum var:
PHP __toString() sihirli yöntemi çağrılarak nesne modeline göre döküm protocol takip edecektir, çünkü (string) döküm, değişken $a bir nesne özellikle tercih edilir (eğer böyle bir ikinci örneği $ hangi sınıfında tanımlanır).
PHP benzer bir şey yapar
function castToString($instance)
{
if (is_object($instance) && method_exists($instance, '__toString')) {
return call_user_func_array(array($instance, '__toString'));
}
}
(string) döküm operasyonu PHP5 + programlama kodu daha yapmak için önerilen bir tekniktir Object-Oriented. IMO bu yani kendi özel PHP şekilde Java / C # / vb gibi diğer OOP diller, tasarım benzerliği (fark) güzel bir örneğidir (bu iyi veya değer için heryerde).
Başka bir seçenek settype işlevi yerleşik kullanmaktır:
<?php
$foo = "5bar"; // string
$bar = true; // boolean
settype($foo, "integer"); // $foo is now 5 (integer)
settype($bar, "string"); // $bar is now "1" (string)
?>
Bu aslında tiplemeleri aksine değişken bir dönüşümü gerçekleştirir ve birden türlerine dönüştürme genel bir yol sağlar.
Ben çıktı tamponlama kullanarak bir değişken ({[) (1]}, {[) (0]}) gibi herhangi bir çıkış yakalamak olduğunu belirtmekte yarar olduğunu düşünüyorum:
<?php
ob_start();
var_dump($someVar);
$result = ob_get_clean();
?>
Thanks to: http://stackoverflow.com/a/139491/987864
Chris Fournier "Eğer bir dize gibi kullanabilirsiniz Eğer bir dize olur", dedi gibi pek PHP dinamik, yazılır. Eğer dize biçimi üzerinde daha fazla kontrol için arıyorsanız o printf cevaptır.