PHP初心者必見!値渡しの使い方と応用例7選

PHP初心者向けに値渡しの使い方と応用例を説明する記事のイメージPHP
この記事は約5分で読めます。

 

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

基本的な知識があればカスタムコードを使って機能追加、目的を達成できるように作ってあります。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を凌駕する現役のプログラマチームによって監修されています。

サイト内のコードを共有する場合は、参照元として引用して下さいますと幸いです

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

この記事を読めば、PHPでの値渡しの基本的な使い方や応用例を理解し、自分のコードに活用することができるようになります。

値渡しは、プログラミングにおける基本的な概念の一つであり、効率的なコードを書くために重要な知識です。

●PHPと値渡しについて

PHPは、Web開発に広く使われているサーバーサイドのスクリプト言語です。

その中で「値渡し」は非常に重要な概念で、変数や関数間でデータをやり取りする際の基本的な方法です。

○値渡しの基本

値渡しとは、ある変数から別の変数へ値をコピーすることを指します。

このとき、元の変数の値は影響を受けません。

値渡しは、データの一貫性を保つために重要な役割を果たします。

●値渡しの使い方

では、具体的なコードを使って値渡しの使い方を見ていきましょう。

○サンプルコード1:基本的な値渡し

このコードでは、変数$aから変数$bへ値をコピーする基本的な値渡しの例を紹介しています。

この例では、変数$aに代入された値5を変数$bにコピーしています。

<?php
$a = 5;
$b = $a; // 値渡し
echo $b; // 出力: 5
?>

○サンプルコード2:配列と値渡し

このコードでは、配列の要素を値渡しで別の配列にコピーする例を紹介しています。

この例では、配列$numbersの要素を新しい配列$new_numbersにコピーしています。

<?php
$numbers = array(1, 2, 3);
$new_numbers = $numbers; // 配列の要素を値渡しでコピー
$new_numbers[0] = 10;
echo $numbers[0]; // 出力: 1
echo $new_numbers[0]; // 出力: 10
?>

○サンプルコード3:関数と値渡し

このコードでは、関数の引数として値渡しを行う例を紹介しています。

この例では、関数incrementに引数として変数$xを渡し、その値をインクリメントしています。

しかし、関数の外側で変数$aの値は変わらないことが確認できます。

<?php
function increment($x) {
  $x = $x + 1;
  return $x;
}

$a = 5;
$b = increment($a);
echo $a; // 出力: 5
echo $b; // 出力: 6
?>

●値渡しの応用例

値渡しは、ソート処理や数学的な計算、文字列操作、日付と時間の操作など、多くの場面で活用されます。

○サンプルコード4:ソート関数の作成

このコードでは、配列の要素をソートする関数my_sortを作成しています。

この例では、関数my_sortが引数として配列を受け取り、それをソートして返します。

<?php
function my_sort($arr) {
  sort($arr);
  return $arr;
}

$numbers = array(3, 2, 1);
$sorted_numbers = my_sort($numbers);
print_r($numbers); // 出力: Array ( [0] => 3 [1] => 2 [2] => 1 )
print_r($sorted_numbers); // 出力: Array ( [0] => 1 [1] => 2 [2] => 3 )
?>

○サンプルコード5:数学的な計算

このコードでは、二つの数値の平均を計算する関数averageを作成しています。

この例では、関数averageが二つの引数を受け取り、それらの平均値を計算して返します。

<?php
function average($a, $b) {
  return ($a + $b) / 2;
}

$num1 = 10;
$num2 = 20;
$avg = average($num1, $num2);
echo $avg; // 出力: 15
?>

○サンプルコード6:文字列操作

このコードでは、文字列を逆順にする関数reverse_stringを作成しています。

この例では、関数reverse_stringが一つの引数を受け取り、その文字列を逆順にして返します。

<?php
function reverse_string($str) {
  return strrev($str);
}

$string = "Hello, World!";
$reversed_string = reverse_string($string);
echo $reversed_string; // 出力: !dlroW ,olleH
?>

○サンプルコード7:日付と時間の操作

このコードでは、現在の日付と時間を取得し、それを特定のフォーマットで表示する関数display_current_dateを作成しています。

この例では、関数display_current_dateが現在の日時を取得し、”Y年m月d日 H時i分s秒”というフォーマットで出力しています。

<?php
function display_current_date() {
    return date('Y年m月d日 H時i分s秒');
}

$current_date = display_current_date();
echo $current_date; // 出力例: 2023年05月16日 15時30分00秒
?>

●注意点と対処法

PHPで値渡しを使用する際には、元の変数の値が変更されないことを理解しておくことが重要です。

関数内で引数の値を変更しても、関数の外側にある元の変数の値は変わりません。

これは、値渡しの基本的な性質であり、逆に元の変数の値を変更したい場合には参照渡しを使用します。

また、PHPにおいては、配列やオブジェクトを引数として関数に渡す場合、デフォルトで値渡しではなく参照渡しとなります。

これにより、関数内で配列やオブジェクトを操作すると、関数の外側にある元の配列やオブジェクトも変更される可能性があります。

まとめ

この記事では、PHPにおける値渡しの基本から応用例、注意点までを解説しました。

値渡しはプログラミングにおける基本的な概念であり、関数の引数を適切に扱うために理解しておくことが重要です。

また、参照渡しとの違いを理解し、それぞれの特性を理解し、適切に使い分けることが求められます。