【PHP8.x】sin関数の使い方

sin関数の使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

sin関数は、指定された数値の正弦(サイン)を計算する関数です。この関数は、数学における三角関数の一つであるサイン(正弦)の値を求めます。

引数としては、計算対象となる角度をラジアン単位で指定します。プログラミングや数学の多くの分野では、角度の単位として度数ではなくラジアンが標準的に用いられます。ラジアンは、円の半径と同じ長さの弧の中心角を1ラジアンとする単位で、例えば180度は約3.14159(π)ラジアンに相当します。もしお手元に度数表記の角度しかない場合は、PHPのdeg2rad()関数を利用してラジアン値に変換してからsin関数に渡すことで、意図した結果を得ることができます。

戻り値は、引数で与えられた角度の正弦値を示す浮動小数点数(float型)です。この正弦値は数学的な性質上、常に-1.0から1.0の範囲内の数値となります。

sin関数は、科学技術計算、物理シミュレーション、グラフ描画、ゲーム開発など、多岐にわたる分野で、周期的な動きや波形を扱う際に非常に重要な役割を果たします。PHPの標準的な拡張機能として提供されているため、特別な設定やライブラリの読み込みなしに、すぐに利用を開始できます。

構文(syntax)

1<?php
2$result = sin(M_PI / 2);
3?>

引数(parameters)

float $num

  • float $num: 角度(ラジアン)を指定する浮動小数点数

戻り値(return)

float

指定された角度(ラジアン)の正弦(サイン)値を浮動小数点数(float)で返します。

サンプルコード

PHP: sin関数とクォーテーションによる変数展開の表示

1<?php
2
3/**
4 * 指定されたラジアン角度のサイン値を計算し、
5 * 結果をダブルクォーテーションとシングルクォーテーションを用いた文字列で表示します。
6 *
7 * この関数は、PHPにおける文字列の扱い、特に変数展開の違いを初心者向けに示します。
8 *
9 * @param float $angleRadians ラジアン単位の角度(例: M_PI / 2 は90度)
10 * @return void
11 */
12function demonstrateSineAndStringQuotes(float $angleRadians): void
13{
14    // sin() 関数は引数としてラジアン単位の角度を取り、そのサイン値を float で返します。
15    // 例: M_PI / 2 (90度) のサイン値は 1.0 です。
16    $sineValue = sin($angleRadians);
17
18    echo "--- sin() 関数の結果と文字列の表示 ---" . PHP_EOL;
19    echo "計算対象の角度 (ラジアン): {$angleRadians}" . PHP_EOL;
20    echo "計算されたサイン値: {$sineValue}" . PHP_EOL . PHP_EOL;
21
22    // ダブルクォーテーション ("...") の文字列:
23    // 文字列内で $変数名 を記述すると、PHPが自動的にその変数の値に展開します(変数展開)。
24    echo "■ ダブルクォーテーションの例 (変数展開あり):" . PHP_EOL;
25    echo "「{$angleRadians}ラジアンのサイン値は {$sineValue} です。」" . PHP_EOL . PHP_EOL;
26
27    // シングルクォーテーション ('...') の文字列:
28    // 文字列内で $変数名 を記述しても、PHPは変数を展開せず、リテラル(そのままのテキスト)として扱います。
29    // 変数の値を含めたい場合は、ドット(.)演算子を使って文字列を結合する必要があります。
30    echo "■ シングルクォーテーションの例 (変数展開なし):" . PHP_EOL;
31    echo '「$angleRadians ラジアンのサイン値は $sineValue です。」' . PHP_EOL;
32    echo '※ このように、シングルクォーテーション内では変数は展開されません。' . PHP_EOL . PHP_EOL;
33
34    echo "■ シングルクォーテーションの例 (ドット結合で変数を組み込む):" . PHP_EOL;
35    echo '「' . $angleRadians . 'ラジアンのサイン値は ' . $sineValue . ' です。」' . PHP_EOL;
36    echo '※ 変数の値を含めるには、ドット(.)演算子で文字列を結合します。' . PHP_EOL;
37}
38
39// サンプルとして、90度(π/2ラジアン)のサイン値を計算し、表示します。
40// M_PI はPHPに組み込まれている円周率の定数です。
41$angleForCalculation = M_PI / 2;
42
43// 関数を呼び出して実行します。
44demonstrateSineAndStringQuotes($angleForCalculation);
45
46// 別の例: 0ラジアンの場合 (サイン値は0)
47// demonstrateSineAndStringQuotes(0.0);

PHPのsin関数は、引数として渡されたラジアン単位の浮動小数点数(角度)のサイン値を計算し、float型で返します。例えば、90度(M_PI / 2ラジアン)のサイン値は1.0です。

このサンプルコードでは、sin関数の利用に加え、PHPにおける文字列の表現方法である「ダブルクォーテーション」と「シングルクォーテーション」の挙動の違いを解説しています。

ダブルクォーテーション(")で囲まれた文字列内では、$変数名と記述すると、その変数の値が自動的に文字列内に展開されます。

一方、シングルクォーテーション(')で囲まれた文字列内では、変数は展開されず、$変数名がそのままの文字列として扱われます。変数の値を含めるには、文字列と変数をドット(.)演算子で結合する必要があります。PHPで文字列を効果的に扱うために、これらの引用符による挙動の違いを理解することは大切です。

sin()関数は、引数として「ラジアン」単位の角度を要求します。度数で計算したい場合は、deg2rad()関数でラジアンに変換してから利用してください。

PHPの文字列リテラルは、囲むクォーテーションの種類で動作が変わります。ダブルクォーテーション(")で囲むと、文字列中の$変数名が自動的にその変数の値に展開されます。これにより、動的な値を文字列に組み込むのが容易になります。

一方、シングルクォーテーション(')で囲んだ場合、$変数名は文字としてそのまま扱われ、変数展開は行われません。シングルクォーテーションの文字列に変数の値を含めたい際は、ドット(.)演算子を用いて文字列と変数を明示的に結合する必要があります。

これらの違いを理解し、変数展開の必要性や意図しない展開の回避、パフォーマンスを考慮して適切に使い分けることが重要です。

PHP sin関数でサイン値を計算する

1<?php
2
3/**
4 * 指定されたラジアン角度のサイン値を計算し、結果を出力する関数。
5 * システムエンジニアを目指す初心者向けに、PHPのsin関数の基本的な使い方を示します。
6 *
7 * @param float $angleInRadians 計算したい角度(ラジアン単位)
8 * @return void
9 */
10function calculateAndDisplaySine(float $angleInRadians): void
11{
12    // sin()関数を使ってサイン値を計算します。
13    // sin()は引数としてfloat型の数値(ラジアン単位の角度)を受け取り、
14    // float型のサイン値を返します。
15    $sineValue = sin($angleInRadians);
16
17    // 計算結果を出力します。
18    // 参考のため、ラジアン角度を度数法に変換して表示します。
19    $angleInDegrees = rad2deg($angleInRadians);
20
21    echo "角度: " . $angleInDegrees . "度 (" . $angleInRadians . "ラジアン)\n";
22    echo "サイン値: " . $sineValue . "\n";
23}
24
25// --- サンプルコードの実行例 ---
26
27// 例1: 90度(π/2ラジアン)のサイン値を計算
28// M_PI はPHPが提供する円周率πの定数です。
29calculateAndDisplaySine(M_PI / 2);
30
31// 例2: 0度(0ラジアン)のサイン値を計算
32calculateAndDisplaySine(0.0);
33
34// 例3: 180度(πラジアン)のサイン値を計算
35calculateAndDisplaySine(M_PI);
36
37// 例4: 30度(π/6ラジアン)のサイン値を計算
38calculateAndDisplaySine(M_PI / 6);
39
40?>

PHPのsin関数は、指定された角度のサイン(正弦)を計算するために利用されます。この関数は、引数として計算したい角度を浮動小数点数(float)で一つ受け取ります。ここで最も重要なのは、引数に渡す角度がラジアン単位であるという点です。例えば、90度を計算したい場合は、PHPの定数M_PI(円周率π)を利用してM_PI / 2として渡します。戻り値は、計算されたサイン値であり、これも浮動小数点数(float)で返されます。サイン値は必ず-1から1の範囲内の数値です。

提供されたサンプルコードでは、calculateAndDisplaySineという関数が定義されており、その中でsin()関数の具体的な使用例が示されています。この関数は、引数として受け取ったラジアン角度をsin()関数に渡し、得られたサイン値を画面に出力します。例として、90度(M_PI / 2ラジアン)、0度(0ラジアン)、180度(M_PIラジアン)、30度(M_PI / 6ラジアン)といった、よく使われる角度でのサイン値の計算結果が示されており、それぞれの角度に対するsin()関数の挙動を直接確認することができます。このように、数学関数を扱う際には、引数の単位を正しく理解することが重要となります。

PHPのsin関数は、角度をラジアン単位で受け取るため、度数法で計算したい場合はdeg2rad()関数で変換するか、PHPの定数M_PIを活用してラジアン値を指定する点に注意が必要です。この引数の単位は初心者が間違いやすいポイントです。関数の戻り値は浮動小数点数(float)であり、計算結果には浮動小数点数特有の微小な誤差が含まれる可能性があるため、厳密な数値比較には配慮してください。引数と戻り値に型ヒントを明記することで、コードの意図が明確になり、堅牢性が向上します。

関連コンテンツ

【PHP8.x】sin関数の使い方 | いっしー@Webエンジニア