■ローカルスコープ
<?php $counter = 10; function getVal(){ $counter = 0; //code } ?>
関数外で$counterが10であっても、関数内の$counterには影響しない
■グローバルスコープ
<?php $counter = 10; function getVal(){ global $counter = 0; //code } getVal(); ?>
globalキーワードをつけると関数内でもグローバル変数になる。もしくは、スーパーグローバル変数の$_GLOBALSを使う
■スタティック変数
<?php function getVal(){ static $counter = 0; $counter++; //code } getVal(); ?>
関数が実行し終わっても、残り続ける。上の例だと関数が呼び出されるごとに0、1、2、・・・となる。関数外とは別個に存在できる。
■関数の引数
<?php function printVal($str){ $str = 'Hello World, ' . $str; print($str); } ?>
基本的には関数内のみ有効。