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

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

作成日: 更新日:

基本的な使い方

decoct関数は、10進数(Decimal)の整数を8進数(Octal)表現の文字列に変換する関数です。この関数は、主に数値の基数を変換したい場合や、特定の設定値が8進数で扱われる必要がある場面で利用されます。

引数としては、変換したい10進数の整数を一つ受け取ります。例えば、10進数の「8」や「10」といった数値を指定できます。decoct関数は、この受け取った10進数を対応する8進数の文字列として返します。例えば、10進数の「8」を渡すと「"10"」という文字列が、10進数の「10」を渡すと「"12"」という文字列が返されます。

この関数は、ファイルやディレクトリのパーミッション設定(例: chmodコマンドなどで使用される0755のような8進数表現の数値)など、8進数で値を表現する必要がある場合に特に役立ちます。戻り値は常に文字列型であるため、変換後の値を数値として扱いたい場合は、必要に応じて型変換を行う必要があります。通常は正の整数を扱いますが、負の整数を指定した場合の動作はシステム環境に依存する場合がありますのでご注意ください。decoct関数は、数値表現の変換をシンプルに行いたいPHPプログラマーにとって便利なツールです。

構文(syntax)

1<?php
2echo decoct(26);
3?>

引数(parameters)

int $num

  • int $num: 10進数に変換したい整数

戻り値(return)

string

10進数を指定された基数に変換した文字列を返します。

サンプルコード

PHP decoct関数で10進数を8進数に変換する

1<?php
2
3// decoct() 関数は、引数として与えられた10進数の整数 (int) を、
4// 8進数表現の文字列 (string) に変換して返します。
5// システムエンジニアを目指す初心者の方は、数値の基数変換の基本として参考にしてください。
6
7$decimalNumber1 = 10;   // 10進数の10
8$decimalNumber2 = 255;  // 10進数の255
9$decimalNumber3 = 8;    // 10進数の8
10
11echo "10進数 " . $decimalNumber1 . " を8進数に変換: " . decoct($decimalNumber1) . PHP_EOL; // 出力: 10進数 10 を8進数に変換: 12
12echo "10進数 " . $decimalNumber2 . " を8進数に変換: " . decoct($decimalNumber2) . PHP_EOL; // 出力: 10進数 255 を8進数に変換: 377
13echo "10進数 " . $decimalNumber3 . " を8進数に変換: " . decoct($decimalNumber3) . PHP_EOL; // 出力: 10進数 8 を8進数に変換: 10
14
15?>

decoct()関数は、PHPにおいて10進数の整数を8進数表現の文字列に変換する際に使用する関数です。プログラミングにおいて、数値を異なる基数(進数)で扱うことは非常に基本的な操作であり、システムエンジニアを目指す方にとって、数値の基数変換の理解は重要です。特に、ファイルの権限設定などで8進数が用いられる場面もあります。

この関数は、引数として変換したい10進数の整数(int型)を一つ受け取ります。例えば、10進数の「10」などを指定します。そして、その10進数値を8進数として表現した文字列(string型)を戻り値として返します。

サンプルコードでは、$decimalNumber1に10、$decimalNumber2に255、$decimalNumber3に8という10進数の整数をそれぞれ代入しています。これらの変数をdecoct()関数に渡すと、echo文により、10進数10は8進数12に、10進数255は8進数377に、そして10進数8は8進数10に変換された文字列として出力されています。このように、decoct()関数は指定した10進数値を確実に8進数表現に変換できるため、基数変換の具体的な挙動を理解するのに役立つでしょう。

decoct()関数は、引数に10進数の整数(int)のみを渡すようにしてください。浮動小数点数や数値以外の文字列を渡すと、PHPが内部で型変換を試み、予期せぬ結果やエラーの原因となる場合がありますので、注意が必要です。変換された8進数の値は文字列として返されます。算術演算に利用する際は、必要に応じて整数型へ変換してください。負の数を渡すと、通常の数学的な8進数変換とは異なる、符号なし整数としての結果が返されます。意図せぬ挙動を防ぐため、正の整数を扱うことを推奨します。2進数や16進数など、他の基数への変換には、decbin()dechex()などの別の関数を利用してください。

関連コンテンツ

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