Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【PHP8.x】NEGATIVE_SIGN定数の使い方

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

作成日: 更新日:

基本的な使い方

NEGATIVE_SIGN定数は、PHPの国際化(intl)拡張機能の一部として提供される定数です。この定数は、主に数値の書式設定を行うNumberFormatterクラスにおいて、負の数値を表現する際の符号として「-」(マイナス記号)を指定するために使用されます。

NumberFormatterクラスでは、数値のフォーマットを細かく制御するために、さまざまな属性が用意されています。例えば、負の数値の前に付く接頭辞(プレフィックス)や後に付く接尾辞(サフィックス)をカスタマイズする際に、NumberFormatter::NEGATIVE_PREFIXNumberFormatter::NEGATIVE_SUFFIXといった属性に、このNEGATIVE_SIGN定数を値として設定することができます。これにより、負の数値を表現する際に、標準的なマイナス記号を確実に表示させることが可能になります。

この定数を利用することで、地域や言語設定に依存せず、常に期待通りの負の符号で数値を表示させることができます。特に、国際的なアプリケーション開発において、数値の表示形式を統一し、ユーザーに正確な情報を提供するために重要な役割を果たします。プログラミングにおいて数値の表示方法を柔軟に制御したい場合に、この定数の利用を検討してください。

構文(syntax)

1<?php
2
3echo NEGATIVE_SIGN;
4
5?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

戻り値なし

戻り値はありません

サンプルコード

PHPで数値の絶対値を取得する

1<?php
2
3declare(strict_types=1);
4
5/**
6 * 指定された数値から負の符号を取り除き、絶対値を返します。
7 *
8 * 例:
9 *   -10 を渡すと 10 を返します。
10 *   5 を渡すと 5 を返します。
11 *   0 を渡すと 0 を返します。
12 *
13 * @param int|float $number 負の符号を取り除きたい数値。
14 * @return int|float 引数 `$number` の絶対値。
15 */
16function removeNegativeSign(int|float $number): int|float
17{
18    // PHPの組み込み関数 abs() は、数値の絶対値を返します。
19    // 数値が負の場合、その正の値を返し、正の場合やゼロの場合はそのままの値を返します。
20    return abs($number);
21}
22
23// --- サンプルコードの動作確認 ---
24
25// 負の数値
26$negativeValue = -123.45;
27echo "元の数値: " . $negativeValue . ", 負の符号を取り除いた数値: " . removeNegativeSign($negativeValue) . PHP_EOL;
28
29// 正の数値
30$positiveValue = 678;
31echo "元の数値: " . $positiveValue . ", 負の符号を取り除いた数値: " . removeNegativeSign($positiveValue) . PHP_EOL;
32
33// ゼロ
34$zeroValue = 0;
35echo "元の数値: " . $zeroValue . ", 負の符号を取り除いた数値: " . removeNegativeSign($zeroValue) . PHP_EOL;
36
37// 負の整数
38$negativeInteger = -50;
39echo "元の数値: " . $negativeInteger . ", 負の符号を取り除いた数値: " . removeNegativeSign($negativeInteger) . PHP_EOL;

このPHPのサンプルコードは、与えられた数値から負の符号を取り除き、その数値の絶対値を返す removeNegativeSign 関数について説明しています。絶対値とは、数値の符号に関わらず、ゼロからの距離を示す非負の値のことです。

removeNegativeSign 関数は、引数として int 型または float 型の $number を受け取ります。この $number は、負の符号を取り除きたい元の数値です。関数は、この $number が負の数であればその正の値を返し、正の数やゼロであればその値を変更せずにそのまま返します。戻り値も int 型または float 型となり、常に非負の値(絶対値)となります。

この絶対値の計算には、PHPに標準で組み込まれている abs() 関数が使用されています。abs() 関数は、"absolute value"(絶対値)の略で、渡された数値の絶対値を簡単に取得できる便利な関数です。例えば、-10abs() に渡すと 10 を返し、5 を渡すと 5 を、0 を渡すと 0 を返します。

サンプルコードでは、負の小数、正の整数、ゼロ、負の整数など、様々な数値を使って removeNegativeSign 関数が期待通りに動作することを確認し、出力結果を表示しています。この関数を使用することで、常に符号を持たない数値、またはゼロを確実に得ることができます。

このサンプルコードは、数値から負の符号を取り除き、常に正の数またはゼロの絶対値を返す方法を示しています。PHPの組み込み関数abs()を使用するため、安全で効率的に処理を実行できます。int|floatといった型ヒントにより、整数と浮動小数点数の両方に対応し、引数と戻り値の型が明確で、コードの信頼性が向上しています。declare(strict_types=1);の宣言は、厳密な型チェックを有効にし、意図しない型変換による潜在的な問題を未然に防ぎますが、型が厳密にチェックされるため、引数の型指定には特に注意が必要です。PHP_EOLはOSに依存しない改行コードとして利用されており、異なる環境での表示崩れを防ぐのに役立ちます。このコードは、リファレンス情報にあるNEGATIVE_SIGN定数とは直接関連しませんが、負の符号を取り除くという課題に対する一般的な解決策として非常に有用です。

関連コンテンツ