[숫자가 아닌 데이터를 처리 할 때 Max () 함수는 어떻게 수행됩니까? 올바르게 사용하는 방법? ]]
php에서 max () 함수는 값 세트의 최대 값을 반환하는 데 사용됩니다. 매우 실용적이며 배열 또는 다중 매개 변수를 처리 할 수 있으며 종종 수치 비교에 사용됩니다. 그러나 실제 개발 프로세스에서 많은 개발자는 Max () 함수가 비수 소속 데이터를 처리하는 방법, 특히 문자열, 부울, 널 및 기타 데이터를 처리 할 때 결과가 놀랍습니다. 이 기사에서는 몇 가지 예제를 사용하여 비수막 데이터를 처리 할 때 Max () 기능의 성능을 탐색 하고이 기능을 올바르게 사용하는 방법을 탐색합니다.
max () 함수의 기본 구문은 다음과 같습니다.
<span><span><span class="hljs-title function_ invoke__">max</span></span><span>(</span><span><span class="hljs-keyword">mixed</span></span><span> </span><span><span class="hljs-variable">$values</span></span><span>)
</span></span>$ 값은 배열 또는 여러 매개 변수 일 수 있습니다.
배열이 제공되면 Max ()는 배열의 최대 값을 반환합니다.
여러 매개 변수가 제공되면 Max ()는 이러한 매개 변수의 최대 값을 반환합니다.
예를 들어:
<span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">max</span></span><span>(</span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-number">5</span></span><span>, </span><span><span class="hljs-number">3</span></span><span>); </span><span><span class="hljs-comment">// 산출 5</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">max</span></span><span>([</span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-number">5</span></span><span>, </span><span><span class="hljs-number">3</span></span><span>]); </span><span><span class="hljs-comment">// 산출 5</span></span><span>
</span></span>PHP에서 Max () 함수가 다른 데이터 유형을 처리 할 때 데이터의 내부 표현 (유형 변환)을 기반으로 비교합니다. 다음은 몇 가지 일반적인 비 숫자 유형의 데이터 및 성능입니다.
max () 함수의 매개 변수가 문자열 인 경우 문자열은 사전 순서 (즉, ASCII 값)로 비교됩니다. 이것은 문자열의 문자 순서가 길이 나 다른 속성이 아니라 비교됨을 의미합니다. 예를 들어:
<span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">max</span></span><span>(</span><span><span class="hljs-string">"apple"</span></span><span>, </span><span><span class="hljs-string">"banana"</span></span><span>, </span><span><span class="hljs-string">"orange"</span></span><span>); </span><span><span class="hljs-comment">// 산출 "orange"</span></span><span>
</span></span>이 예에서 Max () 함수는 문자열을 알파벳순으로 비교하므로 주황색이 가장 큰 것으로 간주됩니다.
부울 값은 PHP에서 True 와 False의 두 가지 가능한 값을 갖습니다. 이에 비해 False는 0으로 간주되고 True는 1으로 간주됩니다. 따라서 Max () 함수가 부울 값을 처리 할 때 True를 False 보다 크게 다루고 True를 반환합니다.
<span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">max</span></span><span>(</span><span><span class="hljs-literal">false</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>); </span><span><span class="hljs-comment">// 산출 1 (지금 바로 true)</span></span><span>
</span></span>NULL 값을 처리 할 때 Max () 함수는 가장 작은 값으로 취급합니다. PHP에서는 NULL이 비교를 위해 0으로 변환되기 때문입니다. 따라서 전달 된 매개 변수에 NULL이 포함 된 경우 NULL은 가장 작은 값으로 간주되고 함수는 다른 비 널 값 중 최대 값을 반환합니다.
<span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">max</span></span><span>(</span><span><span class="hljs-number">10</span></span><span>, </span><span><span class="hljs-literal">NULL</span></span><span>, </span><span><span class="hljs-number">5</span></span><span>); </span><span><span class="hljs-comment">// 산출 10</span></span><span>
</span></span>PHP는 비교할 때 암시 적 유형 변환을 수행하는 동적으로 입력 한 언어입니다. max () 함수의 매개 변수가 숫자 및 문자열과 혼합되면 문자열은 비교를 위해 숫자로 변환됩니다. 문자열 자체가 유효한 숫자 문자열 인 경우 해당 숫자로 변환됩니다. 유효한 숫자 문자열이 아닌 경우 PHP는 0으로 변환합니다.
<span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">max</span></span><span>(</span><span><span class="hljs-number">10</span></span><span>, </span><span><span class="hljs-string">"20"</span></span><span>, </span><span><span class="hljs-string">"abc"</span></span><span>); </span><span><span class="hljs-comment">// 산출 20</span></span><span>
</span></span>이 예에서 "20"은 숫자 20으로 변환되고 "ABC"는 0으로 변환되므로 Max () 는 20을 반환합니다.
마찬가지로, 부울 값은 숫자와 비교할 때 0 ( false ) 또는 1 ( true )으로 변환됩니다. MAX () 함수에 인수에 부울 값이 포함 된 경우 숫자와 같은 비교에 참여합니다.
<span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">max</span></span><span>(</span><span><span class="hljs-number">5</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>); </span><span><span class="hljs-comment">// 산출 5</span></span><span>
</span></span>여기서 True 는 1으로 변환되므로 Max () 함수는 가장 큰 숫자 5를 반환합니다.
유형 변환으로 인한 예상치 못한 결과를 피하기 위해 Max () 함수를 호출하기 전에 모든 매개 변수의 데이터 유형이 일관되도록하는 것이 좋습니다. 이것은 유형 확인 또는 캐스팅을 사용하여 보장 할 수 있습니다.
<span><span><span class="hljs-variable">$values</span></span><span> = [</span><span><span class="hljs-number">5</span></span><span>, </span><span><span class="hljs-string">"10"</span></span><span>, </span><span><span class="hljs-number">20</span></span><span>];
</span><span><span class="hljs-variable">$values</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_map</span></span><span>(</span><span><span class="hljs-string">'intval'</span></span><span>, </span><span><span class="hljs-variable">$values</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-title function_ invoke__">max</span></span><span>(</span><span><span class="hljs-variable">$values</span></span><span>); </span><span><span class="hljs-comment">// 산출 20</span></span><span>
</span></span>max () 함수를 사용하는 경우 널 값을 처리하는 데주의를 기울이십시오. Max ()을 호출하기 전에 NULL 값을 제거하거나 조건부 판단을 사용하여 NULL이 결과에 영향을 미치지 않도록 할 수 있습니다.
<span><span><span class="hljs-variable">$values</span></span><span> = [</span><span><span class="hljs-number">10</span></span><span>, </span><span><span class="hljs-literal">NULL</span></span><span>, </span><span><span class="hljs-number">15</span></span><span>];
</span><span><span class="hljs-variable">$values</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_filter</span></span><span>(</span><span><span class="hljs-variable">$values</span></span><span>, function(</span><span><span class="hljs-variable">$value</span></span><span>) {
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$value</span></span><span> !== </span><span><span class="hljs-literal">NULL</span></span><span>;
});
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">max</span></span><span>(</span><span><span class="hljs-variable">$values</span></span><span>); </span><span><span class="hljs-comment">// 산출 15</span></span><span>
</span></span>문자열 비교와 관련하여 Max () 함수는 사전 순서로 비교됩니다. 따라서 비교 된 문자열이 정렬 할 때 예기치 않은 결과를 생성하지 않도록하는 것이 가장 좋습니다. 문자열의 순서 또는 길이는 Max ()를 호출하기 전에, 특히 다국어 응용 프로그램을 처리 할 때 확인할 수 있습니다.
<span><span><span class="hljs-variable">$strings</span></span><span> = [</span><span><span class="hljs-string">"apple"</span></span><span>, </span><span><span class="hljs-string">"banana"</span></span><span>, </span><span><span class="hljs-string">"orange"</span></span><span>];
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">max</span></span><span>(</span><span><span class="hljs-variable">$strings</span></span><span>); </span><span><span class="hljs-comment">// 산출 "orange"</span></span><span>
</span></span>PHP의 max () 함수는 매우 편리하지만 숫자가 아닌 유형 데이터를 다룰 때는 암시 적 유형 변환 규칙에주의를 기울여야합니다. 문자열, 부울, 널 등과 같은 비 숫자 데이터를 다루는 방법을 이해하면 잠재적 인 오류를 피할 수 있습니다. max () 함수를 올바르게 사용하는 경우 데이터 유형이 일관되거나 사용하기 전에 필요한 유형 변환 및 청소를 수행하는 것이 가장 좋습니다. 이것은 예상치 못한 유형 변환 결과를 피할뿐만 아니라 코드의 가독성과 유지 가능성을 향상시킵니다.