PHP でオブジェクトを文字列に変換する
-
PHP で
__toString()
Magic メソッドを使用してオブジェクトを文字列に変換する -
PHP で
serialize()
関数を使用してオブジェクトを文字列に変換する -
PHP で
print_r()
関数を使用してオブジェクトを Strig に変換する
このチュートリアルでは、PHP でオブジェクトを文字列に変換するさまざまなメソッドを紹介します。
PHP で __toString()
Magic メソッドを使用してオブジェクトを文字列に変換する
__toString()
PHP マジックメソッドを使用して、オブジェクトを PHP の文字列に変換できます。PHP には、__
で始まるメソッドがいくつかあり、PHP はそれらを予約します。オブジェクトに対して特定のアクションを実行すると、これらのメソッドはデフォルトの動作をオーバーライドします。魔法の関数には、__construct()
、__destruct()
、__isset()
、__set()
、__get()
などがあります。__toString()
メソッドを使用してエミュレートできます。文字列へのオブジェクト。次に、文字列のように機能するオブジェクトの動作を調べることができます。PHP 8.0 より前では、__toString()
メソッドは常に文字列値を返す必要がありました。そうしないと、エラーがスローされます。ただし、PHP 8.0 は、可能であれば値を文字列に強制します。
たとえば、クラス Student
を作成し、変数 $name
をプロパティとして記述して、名前を付けます。次に、__toString()
関数を記述し、$this
キーワードを使用して $name
変数を返します。クラスの外で、$st
という名前のクラス Student
のオブジェクトを作成します。次に、echo
関数を使用して $st
オブジェクトを出力します。
出力セクションでは、名前が表示されていることがわかります。したがって、オブジェクトが文字列に変換されたことを証明します。echo
関数は文字列関数であり、それを使用して文字列を出力しました。これは、マジックメソッド __toString()
を使用してオブジェクトを文字列に変換する方法です。
サンプルコード:
<?php
class Student {
protected $name = 'Jadon';
public function __toString() {
return $this->name;
}
}
$st = new Student;
echo $st;
?>
出力:
Jadon
PHP で serialize()
関数を使用してオブジェクトを文字列に変換する
PHP の serialize()
関数は、指定された値をバイトストリーム文字列の表現に変換します。この関数は、データをセッションまたはデータベースに保存する場合に使用できます。オブジェクトは、serialize()
関数を使用して文字列に変換できます。この関数はビットのシーケンスを返します。ネットワークを介してビットを転送する必要がある場合、この関数が使用されます。
たとえば、最初のメソッドと同じクラスとメンバー変数を作成します。次に、関数 show()
を作成します。関数内で echo
関数を使用して、$this
キーワードを使用して $name
変数を出力します。関数の外で、Student
クラスのオブジェクト $st
を作成します。$st
オブジェクトを使用して show()
関数を呼び出します。次に、オブジェクト $st
で serialize()
関数を使用し、echo
関数で出力します。
以下の例では、ビットシーケンスで文字列を出力します。したがって、serialize()
関数を使用して PHP オブジェクトを文字列に変換できます。
サンプルコード:
<?php
class Student {
protected $name = 'Jadon';
public function show() {
echo $this->name."<br>";
}
}
$st = new Student;
$st->show();
$sr = serialize($st);
echo $sr;
?>
出力:
Jadon
O:7:"Student":1:{s:7:"*name";s:5:"Jadon";}
PHP で print_r()
関数を使用してオブジェクトを Strig に変換する
print_r()
関数を使用して、PHP でオブジェクトを文字列に変換することもできます。この関数は、最初のパラメーターを出力される値として受け取り、2 番目のパラメーターを戻りパラメーターであるブール値として受け取ります。文字列を返すために、最初のパラメーターとしてオブジェクトを指定し、2 番目のパラメーターとして true
ブール値を指定できます。戻りパラメーターはオプションです。print_r()
関数は、2 番目のパラメーターが指定されていない場合、指定された変数の値を出力します。
たとえば、$name
と $age
の 2つのメンバー変数を持つクラス Student
を作成します。$name
と $age
をパラメーターとして使用してコンストラクターを作成し、変数を設定します。クラスの外で、オブジェクト $st
を作成し、コンストラクターへの引数として値 jadon
と 21
を指定します。次に、別の変数 $result
を作成し、それに print_r()
関数を割り当てます。関数の最初のパラメーターを $st
として設定し、true
を 2 番目のパラメーターとして設定します。最後に、echo
関数を使用して $result
を出力します。
print_r()
関数の戻りパラメーターを true
に設定すると、関数は文字列を返し、それを $result
変数に格納しました。したがって、echo
関数を使用して文字列を出力できます。このようにして、print_r()
関数を使用して、PHP でオブジェクトを文字列に変換できます。
サンプルコード:
class Student {
protected $name;
protected $age;
public function __construct($name, $age) {
$this->name =$name;
$this->age = $age;
}
}
$st = new Student("jadon", 21);
$result = print_r($st, true);
echo $result;
?>
出力:
Student Object ( [name:protected] => jadon [age:protected] => 21 )
Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.
LinkedIn関連記事 - PHP Object
- PHP で空のオブジェクトを定義する
- PHP で空の値からデフォルトオブジェクトを作成する
- PHP でオブジェクトの配列を作成する
- PHP オブジェクトを連想配列に変換する
- PHP でクラスなしのオブジェクトを作成する