My Photo

« Androidアプリ開発メモ056:AlarmManager | Main | #FF11 アビセアNMソロ1勝2敗 »

January 24, 2012

PHPメモ006:関数、言語構造

関数の定義

function <関数名>(<引数のリスト>)
{
    <処理>
    
    return <戻り値>;
}

引数をとる必要がない関数ならば引数はなくてもかまわない。
returnは値を返さない関数の場合は省略できる。

デフォルト引数

引数にデフォルトの値をセットしておくこともできる。

function foo($arg = null)
{
    ...
}

引数の値渡しと参照渡し

関数の引数に変数を渡す場合、

foo($var);

のようにそのまま変数を関数に渡すのは値渡しで、関数側で受け取った値を変更しても呼び出し元に影響しない。
対して、

foo(&$va);

のように変数の前に&を付けた場合は参照渡しとなり、関数側で受け取った変数を変更すると呼び出し元でもその変数の値が変わる。

また、関数を以下のように宣言すると常に参照渡しとなる。

function foo(&$param)
{
    ...
}

値渡し・参照渡しのサンプルコード。

function func1($arg) {
	$arg = $arg + 1;
}

function func2(&$arg) {
	$arg = $arg + 1;
}

$var1 = 10;
$var2 = 20;
$var3 = 30;

// 関数呼び出し前
echo "${var1},${var2},${var3}<br />\n";

func1($var1);
func1(&$var2);
func2($var3);

// 関数呼び出し後
echo "${var1},${var2},${var3}<br />\n";

実行結果

10,20,30<br />
10,21,31<br />

言語構造

以下の命令は関数呼び出しのような書き方はできるが関数ではなくて言語構造。関数呼び出し風の書き方は推奨されない。
echo出力する
empty文字列変数に値が設定されているか判定する
exit処理の終了
include他のファイルを読み込む
isset変数に値が設定されているか判定する
print出力する
require他のファイルを読み込む
return関数から戻る
unset変数の値をクリアする

« Androidアプリ開発メモ056:AlarmManager | Main | #FF11 アビセアNMソロ1勝2敗 »

PHP」カテゴリの記事

Comments

Post a comment

(Not displayed with comment.)

TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/26461/53815099

Listed below are links to weblogs that reference PHPメモ006:関数、言語構造:

« Androidアプリ開発メモ056:AlarmManager | Main | #FF11 アビセアNMソロ1勝2敗 »

April 2017
Sun Mon Tue Wed Thu Fri Sat
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            
無料ブログはココログ

日本blog村

  • にほんブログ村 IT技術ブログへ
  • にほんブログ村 アニメブログへ
  • にほんブログ村 サッカーブログ アルビレックス新潟へ

好きな音楽家

メモ

XI-Prof