PHP – bcscale()関数でbc数学関数全般のデフォルトスケールパラメータを設定・取得する方法
PHPのbcscale()関数は、すべてのbc数学関数に対してデフォルトのスケール(小数点以下の桁数)を一括設定するための関数です。ここで設定した値は、以降に呼び出されるbc数学関数のうち、明示的にスケールパラメータを指定しなかったものすべてに自動的に適用されます。任意精度の数値計算を行う際に、毎回スケールを指定する手間を省ける便利な関数です。
構文
int bcscale($scale)
パラメータ
bcscale()関数が受け付けるパラメータは1つだけで、必須の整数型です。このパラメータには、小数点以下の桁数を指定します。デフォルト値は0です。
戻り値
bcscale()関数は、設定変更前の古いスケール値を返します。なお、PHP 8.0未満では成功時にTRUE(bool型)を返す仕様だったため、利用しているPHPのバージョンによって戻り値の扱いが異なる点には注意してください。
使用例1:デフォルトスケールの設定
<?php
// デフォルトスケールを5に設定
bcscale(5);
// デフォルトスケール(5)が適用される
echo bcadd('107', '6.5596'), PHP_EOL;
// 明示的にスケール1を指定した場合はそちらが優先される
echo bcadd('107', '6.55957', 1), PHP_EOL;
// デフォルトスケール(5)が適用される
echo bcadd('107', '6.55957'), PHP_EOL;
?>
出力結果
113.55960
113.5
113.55957
この実行結果から、スケールを指定しない呼び出しにはbcscale()で設定した値が使われ、第3引数で明示的にスケールを渡した場合にはそちらが優先されることが分かります。
使用例2:途中でデフォルトスケールを変更する
<?php
// デフォルトスケールを5に設定
bcscale(5);
// デフォルトスケール(5)が適用される
echo bcadd('107', '6.5596'), PHP_EOL;
// 明示的にスケール1を指定した場合はそちらが優先される
echo bcadd('107', '6.55957', 1), PHP_EOL;
// デフォルトスケールを3に変更
bcscale(3);
// 変更後のデフォルトスケール(3)が適用される
echo bcadd('107', '6.55957'), PHP_EOL;
?>
出力結果
113.55960
113.5
113.559
このように、プログラムの途中で再度bcscale()を呼び出せば、それ以降のbc数学関数には新しいデフォルトスケールが適用されます。金額計算など小数の桁数を揃えたい場面で活用すれば、個所ごとの指定が不要になり、コード全体の可読性と保守性を高めることができるでしょう。
-
PHPのimageistruecolor()関数で画像がトゥルーカラー画像かどうかを判定する方法
imageistruecolor() は、PHPに標準で組み込まれている関数の一つで、指定された画像がトゥルーカラー画像であるかどうかを判定するために使用されます。トゥルーカラー画像とは、各ピクセルがRGB(赤・緑・青)のカラー値によって表現される画像のことです。構文bool imageistruecolor(resource $image)パラメータimageistruecolor() 関数は、1つのパラメータ $image を受け取ります。このパラメータには、判定対象となる画像リソースを渡します。戻り値imageistruecolor() は、指定された画像がトゥルーカラー画像であれば t
-
PHPのimagecrop()関数で画像を指定した矩形領域にトリミングする方法
imagecrop()関数とはimagecrop()は、PHPに組み込まれている関数で、画像を指定した矩形領域にトリミングするために使用されます。指定された矩形領域から画像を切り取り、出力画像を返します。なお、元の画像リソース自体は変更されません。構文resource imagecrop ($image, $rect)パラメータimagecrop()は、$imageと$rectの2つのパラメータを受け取ります。$image − imagecreatetruecolor()やimagecreatefrompng()などの画像作成関数によって返される画像リソースです。処理対象の画像を指定します。$