PHPの関数を勉強中なのですが、以下のコードにつきまして分からない部分ありますのでお聞きしたいです。
php
1<?php 2 3// エラーメッセージ用配列 4$err_msg = array(); 5 6// 初期化 7$height = ''; 8$weight = ''; 9$bmi = ''; 10 11// リクエストメソッド取得 12$request_method = get_request_method(); 13 14// POSTの場合 15if ($request_method === 'POST') { 16 17 // POSTデータ取得 18 $height = get_post_data('height'); 19 $weight = get_post_data('weight'); 20 21 // 身長の値が小数かチェック 22 if (check_float($height) !== TRUE) { 23 $err_msg[] = '身長は数値を入力してください'; 24 } 25 26 // 体重の値が小数かチェック 27 if (check_float($weight) !== TRUE) { 28 $err_msg[] = '体重は数値を入力してください'; 29 } 30 31 // エラーがない場合 32 if (count($err_msg) === 0) { 33 // BMI算出 34 $bmi = calc_bmi($height, $weight); 35 } 36 37} 38 39 40/** 41* BMIを計算 42* @param mixed $height 身長 43* @param mixed $weight 体重 44* @return float BMI 45*/ 46///////////////////// 47// calc_bmi関数作成 48///////////////////// 49 50/** 51* 値が正の整数又は小数か確認 52* @param mixed $float 確認する値 53* @return bool TUREorFALSE 54*/ 55///////////////////// 56// check_float関数作成 57///////////////////// 58 59/** 60* リクエストメソッドを取得 61* @return str GET/POST/PUTなど 62*/ 63function get_request_method() { 64 return $_SERVER['REQUEST_METHOD']; 65} 66 67/** 68* POSTデータを取得 69* @param str $key 配列キー 70* @return str POST値 71*/ 72function get_post_data($key) { 73 74 $str = ''; 75 76 if (isset($_POST[$key]) === TRUE) { 77 $str = $_POST[$key]; 78 } 79 80 return $str; 81 82} 83?> 84<!DOCTYPE html> 85<html lang="ja"> 86<head> 87 <meta charset="UTF-8"> 88 <title>BMI計算</title> 89</head> 90<body> 91 <h1>BMI計算</h1> 92 <form method="post"> 93 身長: <input type="text" name="height" value="<?php print $height ?>"> 94 体重: <input type="text" name="weight" value="<?php print $weight ?>"> 95 <input type="submit" value="BMI計算"> 96 </form> 97<?php if (count($err_msg) > 0) { ?> 98<?php foreach ($err_msg as $value) { ?> 99 <p><?php print $value; ?></p> 100<?php } ?> 101<?php } ?> 102<?php if ($request_method === 'POST' && count($err_msg) ===0) { ?> 103 <p>あなたのBMIは<?php print $bmi; ?>です</p> 104<?php } ?> 105</body> 106</html>
上記コードの、POSTデータ取得処理の部分なのですが、$height = get_post_data('height');におきましては、get_post_data関数が実行され、その返り値が$heightに代入されるものと思います。
ここでget_post_data関数につきましてご質問があります。
php
1function get_post_data($key) { 2 3 $str = ''; 4 5 if (isset($_POST[$key]) === TRUE) { 6 $str = $_POST[$key]; 7 } 8 9 return $str; 10 11}
関数内で定義された、$strには最終的に、'height'の文字列が入ると思いますのですが、return $str;とすることで、要は、get_post_data関数自体の結果を$height に代入しているという解釈で合っていますでしょうか?
当然かとは思いますが、仮に、return $str;としなかった場合には、$heightの中身は空になるということでしょうか?
それと、get_post_data関数に限らず、関数の返り値は一つなのでしょうか?
分からない箇所多くて、質問がまとまらず申し訳ないのですが、教えて下さる方いましたらよろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/02 13:08
2017/09/02 13:13
2017/09/02 13:19
2017/09/03 03:44
2017/09/03 13:32 編集
2017/09/03 15:15