@ PHP

function:関数へ引数を渡す

引数で関数を宣言する

変更可能な入力値を操作する関数もあります。関数の入力値は実引数(arguments)と呼びます。引数が関数に柔軟性を持たせることで関数の威力は増大します。

functions_06.phpでは、ページカラーを実引数で指定することができます。

functions_06.php

<?php
$user = '山田';

function page_header($color){
    print '<html><head><title>Welcome to My site</title></head>';
    print '<body bgcolor="#'. $color .'">';
}

page_header('cc99cc');
print "ようこそ{$user}さん";
page_footer();

function page_footer(){
    print '<hr>ご訪問ありがとうございます。';
    print '</body></html>';
}
?>

デフォルト値を指定する

引数に値のない関数を呼び出すと、PHPはつぎのような警告を出します。Missing argument 1 for page_header()

この警告を避けるためには、関数を定義する際に引数のデフォルト値を設定するとオプションの引数になります。

関数が呼び出されるときに値が与えられると、関数は与えられた値を使います。値が与えられていないと、関数はデフォルト値を使います。

functions_07.phpは $color のデフォルト値に cc99ff を設定します。

functions_07.php

<?php
$user = '山田';

function page_header($color='cc99ff'){
    print '<html><head><title>Welcome to My site.</title></head>';
    print '<body bgcolor="#'.$color.'">';
}

page_header();
// page_header('cc99cc'); // $color = 'cc99cc'
print "ようこそ{$user}さん";
page_footer();

function page_footer(){
    print '<hr>ご訪問ありがとうございます。';
    print '</body></html>';
}
?>

引数を2つ持つ関数を定義する

複数の引数を受け入れる関数を定義するには、関数宣言文の各引数を,(カンマ)で区切ります。

functions_08.phpは $color と $title の値を持つ page_header() を呼び出します。

functions_08.php

<?php
$user = '山田';

function page_header($color, $title){
    print '<html><head><title>Welcome to '.$title.'</title></head>';
    print '<body bgcolor="#'.$color.'">';
}

page_header('66cc66', 'My homepage'); // $color='66cc99' $title='My homepage'
print "ようこそ{$user}さん";
page_footer();

function page_footer(){
    print '<hr>ご訪問ありがとうございます。';
    print '</body></html>';
}
?>

オプション引数

オプションの引数は全て必須の引数の後に定義します。

functions_09.phpでは、2つの必須引数 $color と $title の後に1つのオプション引数 $header を定義します。

functions_09.php

<?php
function page_header($color, $title, $header='Welcom'){
    print '<html><head><title>Welcom to '.$title.'</title></head>';
    print '<body bgcolor="#'.$color.'"> ';
    print "<h1>$header</h1>";
}

page_header('66cc99','My wonderful page'); // $color='66cc99' $header='My wonderful page'
// page_header('66cc99','My wonderful page','This page is greate!'); // $header='This page is greate!'
page_footer();

function page_footer(){
    print '<hr>ご訪問ありがとうございます。';
    print '</body></html>';
}
?>

2つのオプション引数

functions_10.phpでは、2つのオプション引数 $title と $header を定義します。

functions_10.php

<?php
function page_header($color, $title='the page', $header='welcom'){
    print '<html><head><title>Welcom to ' .$title.'</title></head>';
    print '<body bgcolor="#'.$color.'">';
    print "<h1>$header</h1>";
}

page_header('66cc99'); // $color = '66cc99'
// page_header('66cc99', 'My wonderful page');
// page_header('66cc99', 'My wonderful page', 'This page is great!'); // $header='This page is great!'
page_footer();

function page_footer(){
    print '<hr>ご訪問ありがとうございます。';
    print '</body></html>';
}
?>