「PHP/入門/関数とは」の版間の差分

削除された内容 追加された内容
Ef3 (トーク | 投稿記録)
→‎変数のスコープ: PHPでは、名前空間のトップレベルで代入された変数をグローバル変数と呼び、関数内で代入された変数をローカル変数と呼びます。 PHPに変数宣言はないので、最初の代入が宣言に準じた扱いになります。 関数内のローカル変数は(static 宣言されなければ)動的で、関数を抜けると揮発します。 関数の中から、グローバル変数を参照するには、3つの方法があります。
タグ: 2017年版ソースエディター
Ef3 (トーク | 投稿記録)
→‎関数の引数と戻値: PHPの関数は、0個以上の引数を渡し1つの戻値を返すことができます。 可変長引数や引数のディフォルト値、またキーワード引数もサポートしています。
タグ: 2017年版ソースエディター
94 行
 
 
=== 引数をもつ関数の引数と戻値 ===
PHPの関数は、0個以上の引数を渡し1つの戻値を返すことができます。
==== 概要 ====
可変長引数や引数のディフォルト値、またキーワード引数もサポートしています。
関数には引数(ひきすう)を持たせることもできる。引数とは、関数の呼び出し時に値を渡して処理させるために、渡す値のこと。引数は複数個でも単数個でも0個でも構わない。PHPに限らず一般にプログラミング言語は関数に引数を持たせることができる。
 
;[https://paiza.io/projects/zo7iDhbEz5cr9pDNt0Af5g?language=php ]:<syntaxhighlight lang=php line highlight="4,10,19,31">
<?php
declare(strict_types=1);
 
printfunction add(20$i, 99$j); {
return $i + $j;
}
 
echo 'add(20, 99) --> ', add(20, 99), PHP_EOL;
function add($i, $j) : {
 
function sum(...$args) {
$sum = 0;
foreach ($args as $arg) {
$sum += $arg;
}
return $sum;
}
echo 'sum(1,2,3,4,5,6,7,8,9,10) --> ', sum(1,2,3,4,5,6,7,8,9,10), PHP_EOL;
$ary = array();
for ($i = 1; $i <= 100; $i++) {
$ary[$i] = $i;
}
echo 'sum(...$ary) --> ', sum(...$ary), PHP_EOL;
 
function addacc($i, $j) := 1) {
return $i + $j;
}
 
echo 'acc(20) --> ', acc(20), PHP_EOL;
echo 'acc(20, 99) --> ', acc(20, 99), PHP_EOL;
 
function wishes($age, $name = 'You') {
$postfix = 'th';
switch ($age % 10) {
case 1: $postfix = 'st'; break;
case 2: $postfix = 'nd'; break;
case 3: $postfix = 'rd'; break;
}
echo "Happy $age$postfix birthday to $name!", PHP_EOL;
}
 
wishes(13);
wishes(name:"Tom", age:21);
wishes(age:12, name:"Alice");
wishes(age:100, name:"My granny");
 
?>
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
add(20, 99) --> 119
119
sum(1,2,3,4,5,6,7,8,9,10) --> 55
sum(...$ary) --> 5050
acc(20) --> 21
acc(20, 99) --> 119
Happy 13rd birthday to You!
Happy 21st birthday to Tom!
Happy 12nd birthday to Alice!
Happy 100th birthday to My granny!
</syntaxhighlight>
:スプレッド構文を使えば可変長引数は、括弧なかへ記述し関数も定義できます。
:引数が省略されたときのディフォルト値を与えることもできます。
:キーワード引数もサポートしています。
 
==== 型宣言 ====