Function Parameters
CoddyのPHPジャーニー「基礎」セクションの一部 — レッスン 62/71。
前のレッスンからの sayHello 関数は常に同じことをします。しかし、異なる人に挨拶したい場合はどうでしょうか? パラメータを使うと、関数にデータを渡すことができ、柔軟で動的なものにできます。
パラメータは、関数を宣言する際に括弧内にリストされる変数です。関数を呼び出す際には、それらのパラメータに割り当てられる値(引数と呼ばれる)を指定します:
<?php
function greet($name) {
echo "Hello, $name!\n";
}
greet("Alice");
greet("Bob");
?>これが出力されます:
Hello, Alice!
Hello, Bob!パラメータ $name はプレースホルダーのように動作します。greet() を呼び出すたびに、渡した引数が関数内のそのプレースホルダーを置き換えます。
関数は、カンマで区切られた複数のパラメータを受け取ることができます:
<?php
function introduce($name, $age) {
echo "$name is $age years old.\n";
}
introduce("Alice", 25);
introduce("Bob", 30);
?>これが出力されます:
Alice is 25 years old.
Bob is 30 years old.複数のパラメータを持つ関数を呼び出す際、順序が重要です。最初の引数は最初のパラメータに、2番目の引数は2番目のパラメータに、といった具合です。
チャレンジ
簡単3 行の入力を読み取ってください:
- 人の名前(例:
Alice) - 都市の名前(例:
Paris) - 年(例:
2020)
describePerson という名前の関数を作成してください。この関数は 3 つのパラメータを受け取ります:$name、$city、$year。この関数は以下の形式でメッセージを出力してください:
[name] moved to [city] in [year].入力値で関数を呼び出してください。
例 1:
入力が Alice、Paris、2020 の場合、出力は次のようになります:
Alice moved to Paris in 2020.例 2:
入力が Bob、Tokyo、2018 の場合、出力は次のようになります:
Bob moved to Tokyo in 2018.例 3:
入力が Emma、New York、2015 の場合、出力は次のようになります:
Emma moved to New York in 2015.チートシート
パラメータは、関数を宣言する際のカッコ内にリストされる変数です。関数を呼び出す際には、それらのパラメータに割り当てられる値(引数)を提供します:
<?php
function greet($name) {
echo "Hello, $name!\n";
}
greet("Alice");
?>関数は、カンマで区切られた複数のパラメータを受け取ることができます:
<?php
function introduce($name, $age) {
echo "$name is $age years old.\n";
}
introduce("Alice", 25);
?>複数のパラメータを持つ関数を呼び出す際には、順序が重要です—最初の引数は最初のパラメータに、2番目の引数は2番目のパラメータに、といった具合です。
自分で試してみよう
<?php
// 入力を読み込む
$name = trim(fgets(STDIN));
$city = trim(fgets(STDIN));
$year = trim(fgets(STDIN));
// TODO: describePerson という名前の関数を作成し、3つのパラメータを受け取る
// ($name, $city, $year) を受け取り、必要な形式でメッセージを出力する
// 入力値で関数を呼び出す
?>このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
4Comparison & Logical Operators
Comparison OperatorsEquality & IdentityLogical Operators Part 1Logical Operators Part 2Recap - Simple Logic2Variables and Data Types
NumbersStrings and QuotesBooleansNaming ConventionsRecap - Variable InitEmpty VariablesString ConcatenationGetting User InputCast to Different Types3Basic Operators
Arithmetic OperatorsModulo OperatorExponentiation OperatorCombined AssignmentIncrement/DecrementOperator PrecedenceRecap - Simple CalculationsString Operators