Saya pikir pertanyaan ini agak menyesatkan karena, toString () di Jawa bukan hanya cara untuk melemparkan sesuatu ke String. Itulah yang melakukan casting via (string) atau String.valueOf (), dan berfungsi juga di PHP.
// Java
String myText = (string) myVar;
// PHP
$myText = (string) $myVar;
Perhatikan bahwa ini bisa bermasalah karena Java adalah tipe-aman ( lihat di sini untuk detail lebih lanjut ).
Tapi seperti yang saya katakan, ini casting dan karena itu tidak setara dengan toString Java ().
toString di Jawa tidak hanya melemparkan objek ke sebuah String. Ini justru akan memberi Anda representasi String . Dan itulah yang dilakukan __toString () di PHP.
// Java
class SomeClass{
public String toString(){
return "some string representation";
}
}
// PHP
class SomeClass{
public function __toString()
{
return "some string representation";
}
}
Dan dari sisi lain:
// Java
new SomeClass().toString(); // "Some string representation"
// PHP
strval(new SomeClass); // "Some string representation"
Apa yang saya maksud dengan "memberikan representasi String"? Bayangkan kelas untuk perpustakaan dengan jutaan buku.
- Membuat kelas itu menjadi String akan (secara default) mengubah data, di sini semua buku, menjadi string sehingga String akan sangat panjang dan sebagian besar waktu juga tidak terlalu berguna.
- To String sebagai gantinya akan memberi Anda representasi String, yaitu, hanya nama perpustakaan. Ini lebih pendek dan karena itu memberi Anda lebih sedikit, tetapi informasi yang lebih penting.
Keduanya merupakan pendekatan yang valid tetapi dengan tujuan yang sangat berbeda, tidak ada solusi yang sempurna untuk setiap kasus dan Anda harus memilih dengan bijak yang cocok dengan kebutuhan Anda.
Tentu, ada lebih banyak opsi:
$no = 421337 // A number in PHP
$str = "$no"; // In PHP, stuff inside "" is calculated and variables are replaced
$str = print_r($no, true); // Same as String.format();
$str = settype($no, 'string'); // Sets $no to the String Type
$str = strval($no); // Get the string value of $no
$str = $no . ''; // As you said concatenate an empty string works too
Semua metode ini akan mengembalikan sebuah String, beberapa dari mereka menggunakan __toString secara internal dan beberapa yang lain akan gagal pada Objects. Lihatlah dokumentasi PHP untuk lebih jelasnya.
print_r(foo, true)
)!