0
Help us understand the problem. What are the problem?

posted at

updated at

PHPの引数、関数(初学者向け)

はじめに

PHPの基本をこの記事で書いていきます。
PHPの初学者の方向けの記事です。実際にコードを書いたりして
実際の挙動などを確認してみてください。

環境

MAMPをインストールします。
エディタはVScodeです。

環境構築方法

MAMPの環境構築が動画でわかりやすく載っていました。
PHPで出力する時はMAMPで出力するのでこちらを確認してください。

バージョン

以下のバージョンで挙動を確認しました。

スクリーンショット 2022-03-31 1.32.17.png

関数

関数とは英語でfunction(機能)と言います。
書き方は

function 関数名(引数){
  //実行内容
return 戻り値;
}

まずは引数や戻り値なしで書いていきます。
実際に使う場面を想定すると、新しく人と知り合った時に自己紹介をします。
その際1回自己紹介したのに、また別の人と会った時にもう1回すると面倒ですよね。
何人も何人もとなると面倒です。
そこで自己紹介文を用意しておけば何回も自己紹介しなくて済みます。
ここで2回以上使う、もしくは使うかもしれないコードが関数です。

function introduce(){
    echo "太郎です。<br> 埼玉県出身です。";
}

introduce();

//太郎です。
//埼玉県出身です。

function関数の宣言です。functionの後のintroduceが関数名です。
()を入れて{}の中に実行する処理を書きます。
2回出力させる場合には

function introduce(){
    echo "太郎です。<br> 埼玉県出身です。<br>";
}

introduce();
introduce();

//太郎です。
//埼玉県出身です。
//太郎です。
//埼玉県出身です。

引数

先ほど出た引数を説明していきます。
出会い系のマッチング、付き合いたい女性プログラムを例にしていきたいと思います。
女性のスペックと男性の理想をベースに書いていきます。

//女性
$looks = "美人";//見た目
$style = "おしゃれ"; //服装
$personality = "性格がいい";//性格
$height = 170;//身長
$income = 1000; //年収

//男性の求める基準
$men_looks = "美人";//理想の見た目
$men_style = "おしゃれ";  //理想の服装
$men_personality = "性格がいい"; //
$men_height = 165; //希望身長
$men_income = 600; //年収




echo "見た目: ";
if($looks === $men_looks){
    echo $looks. "な人なら付き合いたい<br>";
}else {
    echo $looks. "なら付き合いたくない<br>";
}

echo "服装: ";
if ($style === $men_style){
    echo $style. "な人なら付き合いたい<br>";
}else {
    echo $style. "なら付き合いたくない<br>";
}

echo "性格: ";
if($personality === $men_personality){
    echo $personality. "な人と付き合いたい<br>";
}else {
    echo $personality. "なら付き合いたくない<br>";
}


echo "身長: ";
if($height < $men_height ){
    echo $height. "なら付き合いたい<br>";
}else {
    echo $height. "なら付き合いたくない<br>";
}

echo "年収: ";
if($income < $men_income){
    echo $income. "なら付き合いたい<br>";
}else {
    echo $income. "なら付き合いたくない<br>";
}

//見た目: 美人な人なら付き合いたい
//服装: おしゃれな人なら付き合いたい
//性格: 性格がいいな人と付き合いたい
//身長: 170なら付き合いたくない
//年収: 1000なら付き合いたくない

簡単に言うと、美人で見た目がいい人と付き合いたいけど、
自分より年収があったり背が高い人は男の自尊心が傷つくから嫌だよってプログラムです。

これを関数を使って作ってみます。

//女性
$looks = "美人";//見た目
$style = "おしゃれ"; //服装
$personality = "性格がいい";//性格
$height = 170;//身長
$income = 1000; //年収

//男性の求める基準
$men_looks = "美人";//理想の見た目
$men_style = "おしゃれ";  //理想の服装
$men_personality = "性格がいい"; //理想の性格
$men_height = 165; //希望身長
$men_income = 600; //年収


function women_spec_check ($desired_name,$spec,$man_like){  //引数で変数におきかえる 
    echo $desired_name. ":";  //ここで見た目でもなんでもきていいようにする
    if ($spec >= $man_like && $spec === $man_like){
        echo $spec. "なら付き合いたい<br>";
    }else{
        echo $spec. "なら付き合いたくない<br>";
    }
}

//呼び出し側
women_spec_check("見た目",$looks,$men_looks);
women_spec_check("服装",$style,$men_style);
women_spec_check("性格",$personality,$men_personality);
women_spec_check("身長",$height,$men_height);
women_spec_check("年収",$income,$men_income);

//見た目:美人なら付き合いたい
//服装:おしゃれなら付き合いたい
//性格:性格がいいなら付き合いたい
//身長:170なら付き合いたくない
//年収:1000なら付き合いたくない

呼び出し側の見た目などの部分が引数の
$desired_nameです。それで echo $desired_name. ":"; で出力されます。
次の$lookなどは引数の$specに該当します。$men_lookなどが$man_likeに該当します。

返り値

return文により値を返すことができ、 配列やオブジェクトを含むあらゆる型を返せます。
関数の実行を任意の箇所で終了し、その関数を呼び出した箇所に制御を戻すことが出来ます。
下が書き方です。

function 関数名 ($引数){
    //処理の実行
    return $返り値;
}

//関数の呼び出し

返り値を使う

今回は返り値を3人のテストの平均点を出します。

/返り値
function test_score_Average ($scoreA , $scoreB , $scoreC){
    $average = ($scoreA + $scoreB + $scoreC)/3;
    return $average;  //averageが返り値 関数の値を出すことができる
    //returnより下は処理されない
}
//関数を呼び出す
$testAverage = test_score_Average(600,500,700);
echo "3人の平均点は". $testAverage. "点です。";

//3人の平均点は600点です。

PHPが全くわからない人向けの記事

参考資料

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
0
Help us understand the problem. What are the problem?