settype () 는 변수의 유형을 지정된 유형으로 변환하는 PHP의 내장 함수입니다. 기본 구문은 다음과 같습니다.
<span><span><span class="hljs-title function_ invoke__">settype</span></span><span>(</span><span><span class="hljs-variable">$variable</span></span><span>, </span><span><span class="hljs-variable">$type</span></span><span>);
</span></span>
$ 변수는 유형으로 변환 해야하는 변수입니다.
$ 유형은 대상 유형이며, 지원되는 유형에는 bool , int , float , string , array , 객체가 포함됩니다.
settype () 함수의 함수는 새 변수를 반환하는 대신 원래 변수의 유형을 직접 수정하는 것입니다.
sprintf () 함수는 지정된 형식에 따라 형식화 된 문자열을 반환하는 데 사용됩니다. 기본 구문은 다음과 같습니다.
<span><span><span class="hljs-title function_ invoke__">sprintf</span></span><span>(</span><span><span class="hljs-variable">$format</span></span><span>, </span><span><span class="hljs-variable">$arg1</span></span><span>, </span><span><span class="hljs-variable">$arg2</span></span><span>, ...);
</span></span>
$ 형식은 출력 내용의 형식을 정의하는 형식 문자열입니다.
$ arg1, $ arg2, ...은 형식화 될 매개 변수입니다.
Sprintf ()는 출력 문자열을 정확하게 제어 할 수 있으며 숫자, 문자열, 날짜 등과 같은 다양한 유형의 형식을 지원합니다.
settype () 및 sprintf ()를 조합하여 사용하는 경우 일반적으로 데이터 형식을 처리 할 때 유형 변환 및 형식 출력을 동시에 수행해야합니다. 다음은 몇 가지 일반적인 응용 프로그램 시나리오입니다.
때때로 우리는 변수를 정수 또는 부동 소수점 번호로 변환하고 소수점 후 소수점이자 두 자리를 유지하거나 출력 번호의 너비 및 정렬을 보장하는 등 특정 형식으로 출력해야합니다. 이 요구 사항은 settype () 와 sprintf ()를 결합하여 달성 할 수 있습니다.
<span><span><span class="hljs-variable">$price</span></span><span> = </span><span><span class="hljs-string">"45.6789"</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">$price</span></span><span>, </span><span><span class="hljs-string">"float"</span></span><span>); </span><span><span class="hljs-comment">// 플로팅 유형으로 변환하십시오</span></span><span>
</span><span><span class="hljs-variable">$formattedPrice</span></span><span> = </span><span><span class="hljs-title function_ invoke__">sprintf</span></span><span>(</span><span><span class="hljs-string">"가격:%.2f"</span></span><span>, </span><span><span class="hljs-variable">$price</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">$formattedPrice</span></span><span>; </span><span><span class="hljs-comment">// 산출:가격:45.68</span></span><span>
</span></span>
이 예에서 settype ()는 먼저 문자열 유형의 $ 가격을 플로팅 유형으로 변환 한 다음 sprintf ()를 사용하여 두 십진 자리로 포맷합니다.
재무 및 통계 데이터를 다룰 때는 종종 천분의 분리기에 많은 수를 추가하는 것과 같은 숫자를 형식화해야합니다. settype () 와 sprintf ()를 결합하여 쉽게 달성 할 수 있습니다.
<span><span><span class="hljs-variable">$amount</span></span><span> = </span><span><span class="hljs-string">"1234567.89"</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">$amount</span></span><span>, </span><span><span class="hljs-string">"float"</span></span><span>); </span><span><span class="hljs-comment">// 플로팅 유형으로 변환하십시오</span></span><span>
</span><span><span class="hljs-variable">$formattedAmount</span></span><span> = </span><span><span class="hljs-title function_ invoke__">sprintf</span></span><span>(</span><span><span class="hljs-string">"%0.2f"</span></span><span>, </span><span><span class="hljs-variable">$amount</span></span><span>); </span><span><span class="hljs-comment">// 형식 번호,소수점 이하 두 자리를 유지하십시오</span></span><span>
</span><span><span class="hljs-variable">$amountWithComma</span></span><span> = </span><span><span class="hljs-title function_ invoke__">number_format</span></span><span>(</span><span><span class="hljs-variable">$amount</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>, </span><span><span class="hljs-string">"."</span></span><span>, </span><span><span class="hljs-string">","</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-string">"양:<span class="hljs-subst">{$amountWithComma}</span></span></span><span>"; </span><span><span class="hljs-comment">// 산출:양:1,234,567.89</span></span><span>
</span></span>
여기서 먼저 문자열을 플로팅 유형으로 변환 한 다음 Number_Format ()을 사용하여 숫자를 천분의 값으로 양식으로 포맷합니다. settype () 및 sprintf ()가 함께 잘 작동하고 출력 형식을 정확하게 제어하는 데 사용될 수 있음을 알 수 있습니다.
때때로 변수는 우리가 원하는 유형이 아닐 수도 있으며, 먼저 유형으로 변환 한 다음 요구 사항을 충족하는 문자열로 포맷해야합니다. 이 요구 사항은 일부 양식 처리 또는 데이터베이스 작업에서 매우 일반적입니다.
<span><span><span class="hljs-variable">$age</span></span><span> = </span><span><span class="hljs-string">"30"</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">$age</span></span><span>, </span><span><span class="hljs-string">"int"</span></span><span>); </span><span><span class="hljs-comment">// 정수 유형으로 변환하십시오</span></span><span>
</span><span><span class="hljs-variable">$greeting</span></span><span> = </span><span><span class="hljs-title function_ invoke__">sprintf</span></span><span>(</span><span><span class="hljs-string">"당신은 올해입니다 %d 나이"</span></span><span>, </span><span><span class="hljs-variable">$age</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">$greeting</span></span><span>; </span><span><span class="hljs-comment">// 산출:당신은 올해입니다 30 나이</span></span><span>
</span></span>
이 예에서 settype ()는 $ 연령을 문자열에서 정수 유형으로 변환 한 다음 sprintf ()를 사용하여 연령 정보를 친숙한 출력 문자열로 형식화합니다.
sprintf ()를 사용하여 날짜와 시간을 형식화하십시오.
settype () 와 sprintf () 의 조합은 숫자 값뿐만 아니라 날짜와 시간 형식에도 적합합니다. strtotime ()을 사용하여 날짜 문자열을 변환하고 sprintf () 를 통해 출력을 형식화하십시오.
<span><span><span class="hljs-variable">$dateStr</span></span><span> = </span><span><span class="hljs-string">"2025-06-12"</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">settype</span></span><span>(</span><span><span class="hljs-variable">$dateStr</span></span><span>, </span><span><span class="hljs-string">"string"</span></span><span>); </span><span><span class="hljs-comment">// 确保是문자열 유형</span></span><span>
</span><span><span class="hljs-variable">$formattedDate</span></span><span> = </span><span><span class="hljs-title function_ invoke__">sprintf</span></span><span>(</span><span><span class="hljs-string">"오늘은:%s"</span></span><span>, </span><span><span class="hljs-title function_ invoke__">date</span></span><span>(</span><span><span class="hljs-string">"Y년도m달d낮"</span></span><span>, </span><span><span class="hljs-title function_ invoke__">strtotime</span></span><span>(</span><span><span class="hljs-variable">$dateStr</span></span><span>)));
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$formattedDate</span></span><span>; </span><span><span class="hljs-comment">// 산출:오늘은:2025년도06달12낮</span></span><span>
</span></span>
동적 형식 :
Sprintf ()는 다양한 조건에 따라 형식 형식을 동적으로 빌드 할 수 있으며, 이는 다양한 입력을 처리 할 때 특히 유용합니다. 예를 들어, 형식은 사용자가 입력 한 숫자 수에 따라 제어됩니다.
<span><span><span class="hljs-variable">$number</span></span><span> = </span><span><span class="hljs-number">123</span></span><span>;
</span><span><span class="hljs-variable">$numLength</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strlen</span></span><span>((</span><span><span class="hljs-keyword">string</span></span><span>)</span><span><span class="hljs-variable">$number</span></span><span>);
</span><span><span class="hljs-variable">$formattedNumber</span></span><span> = </span><span><span class="hljs-title function_ invoke__">sprintf</span></span><span>(</span><span><span class="hljs-string">"%0<span class="hljs-subst">{$numLength}</span></span></span><span>d", </span><span><span class="hljs-variable">$number</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">$formattedNumber</span></span><span>; </span><span><span class="hljs-comment">// 산출:123</span></span><span>
</span></span>
유형 변환 오류 방지 :
settype ()를 사용하는 경우 변환 할 변수 유형이 대상 유형에 적합한 지 확인하십시오. 더 세밀한 오류 처리가 필요한 경우 IS_NUMERIC () 및 IS_ARRAY () 와 같은 함수를 사용하여 먼저 유형의 판단을 할 수 있습니다.
<span><span><span class="hljs-variable">$value</span></span><span> = </span><span><span class="hljs-string">"123abc"</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">is_numeric</span></span><span>(</span><span><span class="hljs-variable">$value</span></span><span>)) {
</span><span><span class="hljs-title function_ invoke__">settype</span></span><span>(</span><span><span class="hljs-variable">$value</span></span><span>, </span><span><span class="hljs-string">"int"</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"변환 된 값은입니다:<span class="hljs-subst">{$value}</span></span></span><span>"; </span><span><span class="hljs-comment">// 산출:변환 된 값은입니다:123</span></span><span>
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"숫자로 변환 할 수 없습니다。"</span></span><span>;
}
</span></span>