PHP 기반 웹 응용 프로그램을 개발할 때는 사용자가 입력 한 데이터를 처리해야합니다. 이 데이터는 양식 제출, URL 매개 변수, 쿠키 등에서 발생할 수 있습니다. 사용자가 입력 한 컨텐츠는 일반적으로 문자열로 전달되므로 다른 비즈니스 요구에 따라 프로그램에서 다른 데이터 유형 (예 : 정수, 부동 수, 부울 값 등)으로 변환해야 할 수 있습니다. 현재 PHP의 settype () 함수는 유형 변환을 수행하는 간단한 방법을 제공합니다.
settype () 함수는 변수의 유형을 변경하는 데 사용되며 변수 자체의 값을 직접 수정합니다. 유형 주조와 달리 settype ()는 변수의 실제 유형을 변경하고 유형 주조가 성공했는지 여부를 나타내는 부울 값을 반환합니다.
<span><span><span class="hljs-keyword">bool</span></span><span> </span><span><span class="hljs-title function_ invoke__">settype</span></span><span>(</span><span><span class="hljs-keyword">mixed</span></span><span> &</span><span><span class="hljs-variable">$var</span></span><span>, </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$type</span></span><span>);
</span></span>
$ var : 변환 할 유형의 변수 (참조가 전달됨).
$ 유형 : 대상 유형은 다음 중 하나 여야합니다. "부울" , "정수" , "더블" , "문자열" , "배열" , "개체" .
settingType () 함수는 부울 값을 반환합니다.
TRUE : 유형 변환이 성공했음을 나타냅니다.
False : 일반적으로 특정 값을 대상 유형으로 변환 할 수없는 경우 유형 변환이 실패 함을 나타냅니다.
사용자가 입력 한 데이터는 숫자 형태의 문자열 일 수 있으며, 수학 연산을 수행 할 때는 정수 또는 부동 번호로 변환해야합니다. 예를 들어, 사용자는 양식의 가격으로 숫자를 입력하고 계산을 위해 정수로 변환해야합니다.
<span><span><span class="hljs-variable">$user_input</span></span><span> = </span><span><span class="hljs-string">"150.75"</span></span><span>; </span><span><span class="hljs-comment">// 사용자 입력 문자열</span></span><span>
</span><span><span class="hljs-title function_ invoke__">settype</span></span><span>(</span><span><span class="hljs-variable">$user_input</span></span><span>, </span><span><span class="hljs-string">"double"</span></span><span>); </span><span><span class="hljs-comment">// 문자열을 플로팅 번호로 변환하십시오</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$user_input</span></span><span>; </span><span><span class="hljs-comment">// 산출: 150.75</span></span><span>
</span></span>
사용자가 특히 확인란이나 라디오 상자에서 제출 한 양식 데이터를 처리 할 때 사용자는 "on"또는 "1"과 같은 값을 문자열로 제출할 수 있으며 부울 값으로 변환해야합니다.
<span><span><span class="hljs-variable">$user_input</span></span><span> = </span><span><span class="hljs-string">"on"</span></span><span>; </span><span><span class="hljs-comment">// 사용자가 입력 한 확인란 값</span></span><span>
</span><span><span class="hljs-title function_ invoke__">settype</span></span><span>(</span><span><span class="hljs-variable">$user_input</span></span><span>, </span><span><span class="hljs-string">"boolean"</span></span><span>); </span><span><span class="hljs-comment">// 부울로 전환하십시오</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$user_input</span></span><span>; </span><span><span class="hljs-comment">// 산출: 1 (true)</span></span><span>
</span></span>
경우에 따라 사용자가 입력 한 데이터는 특정 형식 (예 : 쉼표로 구분 된 값)으로 전달되는 문자열이며 추가 처리를 위해 배열 유형으로 변환해야합니다.
<span><span><span class="hljs-variable">$user_input</span></span><span> = </span><span><span class="hljs-string">"apple,orange,banana"</span></span><span>; </span><span><span class="hljs-comment">// 사용자 입력 과일 문자열</span></span><span>
</span><span><span class="hljs-title function_ invoke__">settype</span></span><span>(</span><span><span class="hljs-variable">$user_input</span></span><span>, </span><span><span class="hljs-string">"array"</span></span><span>); </span><span><span class="hljs-comment">// 문자열을 배열로 변환합니다</span></span><span>
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$user_input</span></span><span>); </span><span><span class="hljs-comment">// 산출: Array ( [0] => apple [1] => orange [2] => banana )</span></span><span>
</span></span>
일부 객체 지향 응용 프로그램에서는 객체 속성 데이터의 전송 또는 처리를 용이하게하기 위해 객체를 배열로 변환해야 할 수도 있습니다. 이 작업은 settype ()를 사용하여 달성 할 수 있습니다.
<span><span><span class="hljs-class"><span class="hljs-keyword">class</span></span></span><span> </span><span><span class="hljs-title">User</span></span><span> {
</span><span><span class="hljs-keyword">public</span></span><span> </span><span><span class="hljs-variable">$name</span></span><span>;
</span><span><span class="hljs-keyword">public</span></span><span> </span><span><span class="hljs-variable">$age</span></span><span>;
}
</span><span><span class="hljs-variable">$user</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">User</span></span><span>();
</span><span><span class="hljs-variable">$user</span></span><span>->name = </span><span><span class="hljs-string">"John"</span></span><span>;
</span><span><span class="hljs-variable">$user</span></span><span>->age = </span><span><span class="hljs-number">30</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">settype</span></span><span>(</span><span><span class="hljs-variable">$user</span></span><span>, </span><span><span class="hljs-string">"array"</span></span><span>); </span><span><span class="hljs-comment">// 객체를 배열로 변환합니다</span></span><span>
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$user</span></span><span>); </span><span><span class="hljs-comment">// 산출: Array ( [name] => John [age] => 30 )</span></span><span>
</span></span>
settype () 함수는 유형 변환을 제공하지만 주조 (int) $ var )와는 다소 다릅니다. settype () 는 변수 자체를 직접 수정하고 변환이 성공했는지 여부의 부울 값을 반환하는 반면, 캐스트는 원래 변수의 유형을 변경하지 않습니다. 사례는 일반적으로 클리너 코드에 사용되며 settype ()는 유형 변환이 성공했는지 여부를 명확하게 결정 해야하는 시나리오에 적합합니다.
SettingType () 함수는 원래 변수를 수정하므로 참조가 전달됩니다. 원래 변수를 변경하지 않으려면 유형 변환 전에 새 변수로 복사 할 수 있습니다.
대상 유형 변환이 실패하면 settype ()는 오류를 던지지 않지만 False를 반환하므로 사용될 때 리턴 값을 확인하는 것이 가장 좋습니다.
사용자 입력 데이터를 처리 할 때 settype () 함수는 개발자가 데이터 유형을 쉽게 변환 할 수있는 강력한 도구입니다. 특히 양식 데이터 및 외부 입력을 처리 할 때 다양한 유형의 변환 시나리오에 적합합니다. SetType ()를 사용하면 개발자는 올바른 데이터 유형이 다른 비즈니스 로직에서 사용되도록하여 잠재적 오류 나 불일치를 피할 수 있습니다. 이를 사용할 때는 데이터를 추가 처리하기 위해 실제 상황에 따라 유형 변환이 성공했는지 판단해야합니다.