練習問題(データ引渡し2)
- 2013 8/7
カテゴリー : 2013年 8月7日
問題1
三角形の面積を求める関数を作ってください。
問題2
ひし形の面積を求める関数を作ってください。
問題3
グローバルナビを生成するファイルに記述してあるコードと、パンくずリストを生成するファイルに記述してあるコードをfunctions.phpにコピーをして、それぞれ関数化してください。
問題4 商品価格pの消費税(5%)の税込み価格を求めるユーザー定義関数 shouhiを作ってください。
その時、商品価格148円の税込み価格を求めてください。
問題5 所得m円の税率t%の所得税を求めるユーザー定義関数 shotokuを作ってください。
その時、所得500万円、所得税率15%の時の所得税額を求めてください。
問題6 所持金と買い物をして余ったお金を計算するユーザー定義関数 kaimono を作りましょう!
1 2 3 4 5 6 |
$x =10; function checkScope(){ return $x = 50; } print checkScope(); print $x; |
このコードを実行したとき
5行目のprint checkScope(); と 6行目のprint $x; の実行結果を答えてください。
では、
1 2 3 4 5 6 7 |
$x =10; function checkScope(){ global $x; return $x = 50; } print checkScope(); print $x; |
この場合はどうなるでしょう?
global命令を使用して、関数内の$xをグローバル変数$xとして扱うこととして命令しています。
変数のスコープは関数内で宣言をした変数はその関数内でのみ使用~破棄というライフサイクルを持っています。なので、
1 2 3 4 5 6 7 8 9 |
$x =10; function checkScope(){ $x = 0; $x++; return $x; } print checkScope(); print checkScope(); print $x; |
というコードはまったく意味がありませんね。
ところが、関数内で宣言したローカル変数の値を保持し続けられる命令文 staticが存在します。
1 2 3 4 5 6 7 8 9 |
function checkStatic(){ static $sTest; return ++$sTest; } print checkStatic(); echo '<br>'; print checkStatic(); echo '<br>'; echo $sTest = isset($sTest)? $sTest:NULL; |
1 2 3 4 5 6 7 8 9 10 11 |
function sum(){ $result = 0; $args = func_get_args(); foreach($args as $key){ $result += $key; } return $result; } print sum(2,5,10,20); |
引数をの数を何個でも増やせる関数の使い方もあります。