../../image/benilogo.gifPHP4 について


PHP の Function 関数について。

 PHPのマニュアル function 

さて、簡単な関数を実際に試してみる サブルーチンですね。 function だけど procedure 手続きはないのかな?
ま、どっちかと言うと Function があれば戻り値や引数をダミーにすれば代用出来る。
<HTML>
<HEAD>
<TITLE>PHP function 関数の実験1</TITLE>
</HEAD>

<BODY>
<?php 
    /* 定義する。 */ 
   function func1( $a,$b){ 
     echo "関数で表示しています <br> $a <br> $b <br>";
   }; ?>
<P>

関数の実験<BR>
</P>
<P>
<BR>
</P>

<?php
  $a = 'どうした、こうした';
  $b = '今日は寒い';
  func1( $a,$b );
  echo "表示出来ましたか? <BR>";

?>

</BODY>
</HTML>


実行結果
関数の実験





関数で表示しています 
どうした、こうした 
今日は寒い 
表示出来ましたか? 


ちやんと動作している。

定義の位置を一番下にしても問題なく動作することを確認した。
</BODY>
</HTML>

<?php
      /* 定義する。 */
function func1( $a,$b){
   echo "関数で表示しています <br>  $a <br>  $b   <br>";
};
?>



定義した形と呼び出しの形が違うと、どうなるのだろうか? Delphi だと絶対に許されない。
当然なんだけど、そのまんま書けば出来るのかどうか実際にやってみる。  実験
<?php
      /* 定義する。 */
function func1(){ ← 引数なしで定義する。
   echo "関数で表示しています <br>  $a <br>  $b   <br>";
};
?>

<?php
  $a = 'どうした、こうした';
  $b = '今日は寒い';
  func1( $a,$b ); ← 引数を付けて呼び出す。
  echo "表示出来ましたか? <BR>";

?>

実行結果
関数の実験





関数で表示しています 


表示出来ましたか? 


問題なく動作します。 

Delphi言語だと 許されない形だね。

しかし、 $a $b はなにも定義してない。
ようになっている。 これスコープの関係ですね。

関数内は関数内のスコープ範囲というわけだ。


そうすると この場合 $a ,$b を表示させようとすると グローバル宣言する必要があるということか。
<?php
      /* 定義する。 */
function func1(){
   global $a,$b; ← グローバル宣言する。
   echo "関数で表示しています <br>  $a <br>  $b   <br>";
};
?>

関数の実験





関数で表示しています 
どうした、こうした 
今日は寒い 
表示出来ましたか? 
関数の実験

  こうすると$a , $b の内容が表示されますね。

また、おもしろい デフォルトの引数値 なんてのがある。 ちょっと実験してみよう。




ここまで見ていると外部で定義したものの読み込みは・・・・ つまり C の #include や pascal の uses に相当するものは?
マニュアルをみると ちゃんとありました。 include require 等がありますねぇ。
クラス定義もあるようです。 詳細はまたそのときにしよう。































目次に戻る

2005/01/10start ********* Last Update 2006/11/12 14:36 JST

(C) Y.Kondou,2005,2006 All Rights, Reserved.
その他、お気づきの点がありましたら連絡先はこちらから