定数の導入リファクタリングにより、ソースコードの読みやすさと保守性が向上します。 また、値や目的についての説明がないままハードコードされた定数の使用を回避するのにも役立ちます。
PHP の例
クラス定数の導入
クラス定義内で定数が抽出されると、新しい定数は const キーワードで定義され、 self キーワードで参照されます。
PHP 言語バージョン 7.1 以降では、抽出された定数を パブリック、 private、 保護を選択します。 として追加でマークできます。
class const_extraction {
public static function find($params) {
if (isset($params['param_query'])) {
$result = MyDatabase::execute($params['param_query']);
}
}
public static function findAll($params) {
if (isset($params['param_query'])) {
$result = MyDatabase::executeAll($params['param_query']);
}
}
}
class const_extraction {
const PARAM_QUERY = 'param_query';
public static function find($params) {
if (isset($params[self::PARAM_QUERY])) {
$result = MyDatabase::execute($params[self::PARAM_QUERY]);
}
}
public static function findAll($params) {
if(isset($params[self::PARAM_QUERY])) {
$result = MyDatabase::executeAll($params[self::PARAM_QUERY]);
}
}
}
クラス外の定数の導入
クラス定義の外で定数が抽出されると、その定数を const キーワードで定義するか、 定義() 関数で定義するかを選択できます。
const の定義:
function find($params) {
if (isset($params['param_query'])) {
$result = MyDatabase::execute($params['param_query']);
}
}
function findAll($params) {
if (isset($params['param_query'])) {
$result = MyDatabase::executeAll($params['param_query']);
}
}
const PARAM_QUERY = 'param_query';
function find($params) {
if (isset($params[PARAM_QUERY])) {
$result = MyDatabase::execute($params[PARAM_QUERY]);
}
}
function findAll($params) {
if (isset($params[PARAM_QUERY])) {
$result = MyDatabase::executeAll($params[PARAM_QUERY]);
}
}
定義() の定義:
function find($params) {
if (isset($params['param_query'])) {
$result = MyDatabase::execute($params['param_query']);
}
}
function findAll($params) {
if (isset($params['param_query'])) {
$result = MyDatabase::executeAll($params['param_query']);
}
}
define('PARAM_QUERY', 'param_query');
function find($params) {
if(isset($params[PARAM_QUERY])) {
$result = MyDatabase::execute($params[PARAM_QUERY]);
}
}
function findAll($params) {
if(isset($params[PARAM_QUERY])) {
$result = MyDatabase::executeAll($params[PARAM_QUERY]);
}
}
JavaScript の例
Parenizor.method('toString', function () {
return '(' + this.getValue() + ')';
})
Parenizor.method('toString', function () {
const string = '(' + this.getValue() + ')';
return string;
})
2026 年 5 月 22 日