COSH () 는 PHP 4.0.0 이상을위한 내장 기능입니다. PHP 버전이 매우 오래된 경우 지원하지 않을 수 있습니다. 다음과 같은 방법으로 현재 PHP 버전을 볼 수 있습니다.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">'현재의PHP버전: '</span></span><span> . </span><span><span class="hljs-title function_ invoke__">phpversion</span></span><span>();
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>버전이 너무 낮 으면 PHP를 최신 버전 (적어도 PHP 5.6+)으로 업그레이드하는 것이 좋습니다.
COSH ()는 PHP의 수학적 확장에 속하며 ( Ext-BCMath 또는 Ext-Math는 필요하지 않지만 일부 PHP 구성은 PHP_Math 확장을 활성화해야 할 수도 있음), 드문 경우 일부 PHP 얇은 설치 또는 사용자 정의 컴파일에는이 기능이 포함되지 않을 수 있습니다.
function_exists는 다음을 탐지하는 데 사용될 수 있습니다.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">function_exists</span></span><span>(</span><span><span class="hljs-string">'cosh'</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"cosh 사용 가능한 기능"</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">"cosh 기능이 정의되지 않았습니다,수학적 확장이 필요할 수 있습니다"</span></span><span>;
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>"정의되지 않은"이 반환되면 다음과 같은 방법으로 활성화 할 수 있습니다.
php.ini 에서 Extension = php_math.dll (Windows)을 찾거나 수학 확장이 Linux에 설치되어 있는지 확인하십시오.
웹 서버 (예 : Apache, Nginx+PHP-FPM)를 다시 시작하십시오.
때때로 개발자는 COSH 라는 기능을 스스로 정의하거나 네임 스페이스에서 잘못 호출하거나 내장 기능을 덮어 쓰거나 숨기는 경우가 있습니다. 코드에 비슷한 정의가 있는지 확인하십시오.
<span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">cosh</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$x</span></span></span><span>) {
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$x</span></span><span>; </span><span><span class="hljs-comment">// 오류 예제</span></span><span>
}
</span></span>그렇다면 내장 기능과의 충돌을 피하기 위해 사용자 정의 기능의 이름을 바꾸는 것이 좋습니다.
PHP 구성을 단기적으로 수정할 수없는 경우 COSH 기능을 수동으로 구현할 수 있습니다.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-title function_ invoke__">function_exists</span></span><span>(</span><span><span class="hljs-string">'cosh'</span></span><span>)) {
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">cosh</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$x</span></span></span><span>) {
</span><span><span class="hljs-keyword">return</span></span><span> (</span><span><span class="hljs-title function_ invoke__">exp</span></span><span>(</span><span><span class="hljs-variable">$x</span></span><span>) + </span><span><span class="hljs-title function_ invoke__">exp</span></span><span>(-</span><span><span class="hljs-variable">$x</span></span><span>)) / </span><span><span class="hljs-number">2</span></span><span>;
}
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>이 방법을 사용하면 코드가 모든 환경에서 실행되도록하지만 루트에서 방지 확장 문제를 해결하는 것이 좋습니다.