3_012-引数

PHPとPostgreSQLを利用したWEBシステムの開発例を掲載していきます。腕時計 販売サイト my-watch.biz

● 3_012-引数

 引数を先ほど説明しましたが参照で渡す事ができます。
 前の関数の出力は邪魔ですのでコメント・アウトします。例文を追加しますので区切り線を入れます。

<?php

/* このプログラムは演習用です。
コメントの練習です。
    */

// ここから演習を開始します。

$name_1[] = 1;
$name_1[] = 2;
$name_1[] = 3;
$name_1[] = 4;
$name_1[] = 5;

$name_2[] = 1;
$name_2[] = 2;
$name_2[] = 3;
$name_2[] = 4;
$name_2[] = 5;

$name[] = $name_2;
$name[] = $name_1;

$f_name = &$name; // 参照による代入

// print_r($name); // 配列の中を調べる

$kakaku = 10000; // 10000を代入

$kakaku_keta = number_format($kakaku); // 10000を桁処理

// print $kakaku_keta;


// kakaku_keisan( $kakaku ); // 定義した関数を実行

function kakaku_keisan ( $kakaku ){ // 関数を定義
$kakaku_2 = $kakaku * 2;
print $kakaku_2;
}

//---------------------------引数を参照渡しする-------------------------

$foo = '仕事';

function hiki_2 ( &$foo ){
$foo = '遊び';
print $foo;
}

hiki_2 ( $foo );
?>

 上記は「遊び」と出力されます。
 詳細は下記の正規マニュアルに記載されせています。
 関数の引数

● 3_013-変数のスコープ

 スコープとは「有効範囲」です。
 変数に値が代入された時に、それはどごまで有効なのかを示します。

<?php

/* このプログラムは演習用です。
コメントの練習です。
    */

// ここから演習を開始します。

$name_1[] = 1;
$name_1[] = 2;
$name_1[] = 3;
$name_1[] = 4;
$name_1[] = 5;

$name_2[] = 1;
$name_2[] = 2;
$name_2[] = 3;
$name_2[] = 4;
$name_2[] = 5;

$name[] = $name_2;
$name[] = $name_1;

$f_name = &$name; // 参照による代入

// print_r($name); // 配列の中を調べる

$kakaku = 10000; // 10000を代入

$kakaku_keta = number_format($kakaku); // 10000を桁処理

// print $kakaku_keta;


// kakaku_keisan( $kakaku ); // 定義した関数を実行

function kakaku_keisan ( $kakaku ){ // 関数を定義
$kakaku_2 = $kakaku * 2;
print $kakaku_2;
}

//---------------------------引数を参照渡しする-------------------------


$foo = '仕事';

function hiki_2 ( &$foo
){
$foo = '遊び';
print $foo;
}

// hiki_2 ( $foo );

//---------------------------変数のスコープ-------------------------

$foo = '仕事';

function hiki_3 (
){
print $foo;
}

hiki_3 ( $foo );
?>

 上の変数のスコーブは「仕事」と出力できません。変数$fooはユーザー定義関数hiki_3の中まで及ばないのです。
 下記のようにユーザー定義関数内の変数が未定義というエラーが出ます。
 Notice: Undefined variable: foo in C:\htdocs\enshu\index.php on line 63

 下記のようにユーザー定義関数内でグローバル変数$fooを参照すれば可能になります。
 通常はこういう書き方はさませんが、処理内に書くより引数で渡したほうがコードが明解だからです。

<?php

/* このプログラムは演習用です。
コメントの練習です。
    */

// ここから演習を開始します。

$name_1[] = 1;
$name_1[] = 2;
$name_1[] = 3;
$name_1[] = 4;
$name_1[] = 5;

$name_2[] = 1;
$name_2[] = 2;
$name_2[] = 3;
$name_2[] = 4;
$name_2[] = 5;

$name[] = $name_2;
$name[] = $name_1;

$f_name = &$name; // 参照による代入

// print_r($name); // 配列の中を調べる

$kakaku = 10000; // 10000を代入

$kakaku_keta = number_format($kakaku); // 10000を桁処理

// print $kakaku_keta;


// kakaku_keisan( $kakaku ); // 定義した関数を実行

function kakaku_keisan ( $kakaku ){ // 関数を定義
$kakaku_2 = $kakaku * 2;
print $kakaku_2;
}

//---------------------------引数を参照渡しする-------------------------


$foo = '仕事';

function hiki_2 ( &$foo
){
$foo = '遊び';
print $foo;
}

// hiki_2 ( $foo );

//---------------------------変数のスコープ-------------------------

$foo = '仕事';

function hiki_3 (
){
global $foo;
print $foo;
}

hiki_3 ( $foo );
?>

 ユーザー定義関数を含めて変数の有効範囲を意識しましょう。

 正規マニュアルでは以下を参照して下さい。
 変数のスコープ

● 3_014-演算子

 演算子とは読んでごとく、演算する元になるものです。
 計算、比較、その他色々あります。

 実は既に演算子を使っています。
 「=」は代入演算子です。

 全ての演算子を長々と説明してもあまり意味がありません。それだけを覚えるよりも式の中で必要になりますからコードを書きながら調べ覚えていくのが実践的です。

 下記の正規マニュアルを開いて見てください。
 第 15章演算子

 目次に、
  演算子の優先順位
  代数演算子
  代入演算子
  ビット演算子
  比較演算子
  エラー制御演算子
  実行演算子
  加算子/減算子
  論理演算子
  文字列演算子
  配列演算子
  型演算子

 と、あります。これを流し読みする程度でけっこうです。なぜなら後の「制御構造」で式の一部として出てきますので。
 制御構造でもう一度再確認して下さい。



戻る

Copyright (c) 2007 MSweb All Rights Reserved

腕時計 クロノグラフ(時計)のメンズ専門販売サイトカシオ G-SHOCK、Baby-G(腕時計)専門の通信販売サイトG-SHOCK、Baby-G専門通販サイト 運営ブログ

腕時計 女性専用 販売のladies-watch.biz腕時計 メンズ(男性)専門販売のmens-watch.biz