PHP에서 객체를 문자열로 변환

Subodh Poudel 2023년1월30일
  1. __toString() Magic 메서드를 사용하여 PHP에서 객체를 문자열로 변환
  2. PHP에서 serialize() 함수를 사용하여 객체를 문자열로 변환
  3. print_r() 함수를 사용하여 PHP에서 객체를 Strig로 변환
PHP에서 객체를 문자열로 변환

이 튜토리얼에서는 PHP에서 객체를 문자열로 변환하는 다양한 방법을 소개합니다.

__toString() Magic 메서드를 사용하여 PHP에서 객체를 문자열로 변환

__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";}

또한 print_r() 함수를 사용하여 PHP에서 객체를 문자열로 변환할 수 있습니다. 이 함수는 인쇄할 값으로 첫 번째 매개변수를 사용하고 부울 값인 반환 매개변수로 두 번째 매개변수를 사용합니다. 객체를 첫 번째 매개변수로 제공하고 true 부울 값을 두 번째 매개변수로 제공하여 문자열을 반환할 수 있습니다. 반환 매개변수는 선택 사항입니다. print_r() 함수는 두 번째 매개변수가 제공되지 않은 경우 제공된 변수의 값을 인쇄합니다.

예를 들어 $name$age라는 두 개의 멤버 변수가 있는 Student 클래스를 만듭니다. $name$age를 매개변수로 사용하여 생성자를 만들고 변수를 설정합니다. 클래스 외부에서 $st 개체를 만들고 jadon21 값을 생성자에 대한 인수로 제공합니다. 그런 다음 다른 변수 $result를 만들고 print_r() 함수를 할당합니다. 함수의 첫 번째 매개변수를 $st로 설정하고 true를 두 번째 매개변수로 설정합니다. 마지막으로 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 Poudel avatar Subodh Poudel avatar

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 String