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またはextmathは必要ありませんが、PHP構成にはphp_math拡張機能を有効にする必要がある場合があります)。
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_math.dll (windows)をphp.iniで検索するか、数学拡張機能がLinuxの下にインストールされていることを確認してください。
Webサーバー(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>この方法は、コードがあらゆる環境で実行されることを保証しますが、ルートからの無効な拡張の問題を解決することをお勧めします。