PHPの文字列変換 (Translation: String Conversion in PHP)
PHPにおける.NET/JavaのtoString()の等価物
**PHPでは、オブジェクトを文字列に変換する際に、__toString()
マジックメソッドを使用します。**これは.NETやJavaのtoString()
メソッドと同様の機能を提供します。
具体的な使い方
class Person {
public $name;
public $age;
public function __construct($name, $age) {
$this->name = $name;
$this->age = $age;
}
// __toString()マジックメソッド
public function __toString() {
return "{$this->name} ({$this->age})";
}
}
$person = new Person("John Doe", 30);
echo $person; // 出力: John Doe (30)
解説:
Person
クラスは、名前と年齢のプロパティを持ちます。__toString()
メソッドが定義されています。このメソッドは、オブジェクトを文字列に変換する際に自動的に呼び出されます。$person
オブジェクトを作成し、echo
で出力すると、__toString()
メソッドが呼び出され、文字列「John Doe (30)」が表示されます。
ポイント:
- 戻り値は必ず文字列型である必要があります。
__toString()
メソッドは、クラスごとに定義する必要があります。
PHPの文字列変換 (String Conversion in PHP)
PHPでは、さまざまなデータ型を文字列に変換することができます。その方法には、いくつかのアプローチがあります。
(string) キャスト
最も一般的な方法は、string
キャストを使用することです。
$number = 42;
$string = (string)$number;
echo $string; // 出力: 42
strval() 関数
strval()
関数も文字列変換に使用できます。
$boolean = true;
$string = strval($boolean);
echo $string; // 出力: 1
__toString() マジックメソッド
オブジェクトを文字列に変換する場合は、__toString()
マジックメソッドを使用します。
class Person {
public $name;
public function __toString() {
return "Hello, my name is {$this->name}.";
}
}
$person = new Person();
$person->name = "John Doe";
$string = (string)$person;
echo $string; // 出力: Hello, my name is John Doe.
文字列連結
文字列と他のデータ型を連結すると、自動的に文字列に変換されます。
$number = 10;
$string = "The number is: " . $number;
echo $string; // 出力: The number is: 10
sprintf() 関数
フォーマットされた文字列を作成する際には、sprintf()
関数を使用できます。
$name = "Alice";
$age = 30;
$string = sprintf("My name is %s and I am %d years old.", $name, $age);
echo $string; // 出力: My name is Alice and I am 30 years old.
json_encode()関数
オブジェクトをJSON形式の文字列に変換する際に、json_encode()
関数を使用することができます。
class Person {
public $name;
public $age;
}
$person = new Person();
$person->name = "John Doe";
$person->age = 30;
$json = json_encode($person);
echo $json; // 出力: {"name":"John Doe","age":30}
serialize()関数
オブジェクトをシリアライズして文字列に変換する際には、serialize()
関数を使用することができます。
$person = new Person();
$person->name = "John Doe";
$person->age = 30;
$serialized = serialize($person);
echo $serialized; // 出力: O:5:"Person":2:{s:4:"name";s:8:"John Doe";s:3:"age";i:30;}
var_dump()関数
オブジェクトの情報をデバッグのために出力する際には、var_dump()
関数を使用することができます。
$person = new Person();
$person->name = "John Doe";
$person->age = 30;
var_dump($person);
注意:
json_encode()
とserialize()
は、オブジェクトを文字列に変換するだけでなく、オブジェクトの状態を保存することができます。var_dump()
は、デバッグ用であり、通常はアプリケーションの最終的な出力には使用されません。
php string