情報学部 | 菅沼ホーム | 目次 | 索引 |
<?php // <? でも良い場合がある ここに,PHP のプログラム ?>
01 <!DOCTYPE HTML> 02 <HTML> 03 <HEAD> 04 <TITLE>PHPの例</TITLE> 05 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> 06 <LINK REL="stylesheet" TYPE="text/css" HREF="../../master.css"> 07 </HEAD> 08 <BODY CLASS="white"> 09 <H1>PHPの例</H1> 10 <DL> 11 <DT>嗜好品 12 <?php 13 $fr = array ('リンゴ', 'ミカン', 'イチゴ'); 14 for ($i = 0; $i < 3; $i++) { 15 ?> 16 <DD>果物: <?php echo $fr[$i]."\n" ?> 17 <?php 18 } 19 ?> 20 </DL> 21 </BODY> 22 </HTML>
<DD>果物: リンゴ <DD>果物: ミカン <DD>果物: イチゴ
<!DOCTYPE HTML> <HTML> <HEAD> <TITLE>PHPの例</TITLE> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> <LINK REL="stylesheet" TYPE="text/css" HREF="../../master.css"> </HEAD> <BODY CLASS="white"> <H1>PHPの例</H1> <DL> <DT>嗜好品 <DD>果物: リンゴ <DD>果物: ミカン <DD>果物: イチゴ </DL> </BODY> </HTML>
<?php echo "test\n";?>
php echo.php
php -r "echo 'test\n';"
01 <?php 02 $x = 123; 03 echo '変数$xの値は '; // そのまま出力 04 echo $x."\n"; 05 // echo "変数$xの値は ".$x."\n"; // 「$xの値は」を変数名とみなしている(エラー) 06 echo "変数 $x の値は ".$x."\n"; // スペースで区切って変数を明確にする 07 echo "変数 ${x} の値は ".$x."\n"; // 「{」と「}」で区切って変数を明確にする 08 echo "変数 {$x} の値は ".$x."\n"; // 「{」と「}」で区切って変数を明確にする 09 echo "変数 \$x の値は ".$x."\n"; // 「\」で「$」の機能を無効にする 10 ?>
変数$xの値は 123 変数 123 変数 123 の値は 123 変数 123 の値は 123 変数 123 の値は 123 変数 $x の値は 123
Seq. | 説明 | 数値 |
---|---|---|
\n | 改行 | 0x0A |
\r | キャリッジリターン | 0x0D |
\t | 水平タブ | 0x09 |
\v | 垂直タブ | 0x0B |
\e | エスケープ | 0x1B |
\f | フォームフィード | 0x0C |
\\ | バックスラッシュ(\) | |
\$ | ドル記号($) | |
\" | ダブルクオーテーション |
<?php $y = 123; $x = <<<hd_e これは,ヒヤドキュメントの例です. 変数\$yも評価({$y}) されます.\n hd_e; echo $x; ?>
これは,ヒヤドキュメントの例です. 変数$yも評価(123) されます.
. : 文字列の結合 + : 加算(配列の場合は要素の和集合,後述) - : 減算 * : 乗算 / : 除算 小数点以下が常に計算される(以下に示すいずれかの方法で小数点以下切り捨て) ( floor($x / $y),intval($x / $y),(int)($x / $y),(integer)($x / $y) ) % : 余り 被除数,除数を共に整数型に変換(小数点以下を切り捨て)してから計算 ( 7.3 % 2.3 は,1 ) = : 代入 ++ : インクリメント演算子( 1 だけ増加) -- : デクリメント演算子( 1 だけ減少)
01 #include <stdio.h> 02 03 int main() 04 { 05 // データの入力 06 double x, y; 07 printf("2つのデータを入力して下さい "); 08 scanf("%lf %lf", &x, &y); 09 // 乗算と除算 10 double mul = x * y; 11 double div = x / y; 12 // 結果の出力 13 printf("乗算=%f 除算=%f\n", mul, div); 14 15 return 0; 16 }
01 <?php 02 /****************************/ 03 /* 2つのデータの乗算と除算 */ 04 /* coded by Y.Suganuma */ 05 /****************************/ 06 // データの入力 07 printf("2つのデータを入力して下さい "); 08 // echo "2つのデータを入力して下さい "; // echo ("2つの...") でも可,以下同様 09 // print "2つのデータを入力して下さい "; 10 $str = trim(fgets(STDIN)); 11 $x = intval(strtok($str, " ")); // 小数点以下切り捨て 12 $y = intval(strtok(" ")); // 小数点以下切り捨て 13 // 乗算と除算 14 $mul = $x * $y; 15 $div = $x / $y; 16 // 結果の出力 17 printf("乗算=%d 除算=%d %.3f\n", $mul, $div, $div); 18 echo "乗算=".$mul." 除算=".$div."\n"; 19 print "乗算=".$mul." 除算=".$div."\n"; 20 ?>
$d_data = -12.34456; $i_data = -12; $c_data = "abc"; printf("結果は %f %10.3f %d %5d %s\n", $d_data, $d_data, $i_data, $i_data, $c_data);
fscanf(STDIN, "%d %d", $x, $y);
2.3 4.5 3.4 .....
for ($i1 = 0; $i1 < $n; $i1++) fscanf(STDIN, "%lf", $x[$i1]);
2つのデータを入力して下さい 8 3
乗算=24 除算=2 2.667 乗算=24 除算=2.6666666666667 乗算=24 除算=2.6666666666667
> より大きい a > b 式 a の値が式 b の値より大きいとき真 < より小さい a < b 式 a の値が式 b の値より小さいとき真 >= 以上 a >= b 式 a の値が式 b の値以上のとき真 <= 以下 a <= b 式 a の値が式 b の値以下のとき真 == 等しい a == b 式 a の値と式 b の値が等しいとき真(配列にも使用可) === 等しい a === b 式 a と式 b の型と値が等しいとき真(配列にも使用可) !=, <> 等しくない a != b, a <> b 式 a の値と式 b の値が等しくないとき真(配列にも使用可) !== 等しくない a !== b 式 a と式 b の型か値が等しくないとき真(配列にも使用可) ||, or 論理和 x || y, x or y 式 x が真か,または,式 y が真のとき真 &&, and 論理積 x && y, x and y 式 x が真で,かつ,式 y が真のとき真 xor 排他的論理和 x xor y 式 x,または,式 y のいずれか一方だけが真のとき真 ! 否定 ! x 式 x が偽のとき真
$x = 10; $y = "10";
$a1 = array(1, 2, 3); $a2 = array(1, 2, 3); $a3 = array(0, 2, 3);
| 論理和 x | y 対応するビットのいずれかが 1 のとき真. & 論理積 x & y 対応するビットの双方が 1 のとき真 ^ 排他的論理和 x ^ y 対応するビットが異なるのとき真 ~ 1の補数 ~ x ビット毎に 1 と 0 を反転する << 左にシフト x << 3 3 ビット左にシフト.x を 23 倍することに相当. >> 右にシフト x >> 3 3 ビット右にシフト.x を 23 で割ることに相当.
// 配列 $a1 = array(10, 20, 30); $b1 = array(10, 50, 60, 70); $c1 = $a1 + $b1; $d1 = $b1 + $a1; print_r($c1); print_r($d1); // 連想配列 $a2 = array('x'=>100, 'y'=>200, 'z'=>300); $b2 = array('x'=>100, 'y'=>2000, 'z'=>3000, 'w'=>4000); $c2 = $a2 + $b2; $d2 = $b2 + $a2; print_r($c2); print_r($d2);
Array ( [0] => 10 [1] => 20 [2] => 30 [3] => 70 ) Array ( [0] => 10 [1] => 50 [2] => 60 [3] => 70 ) Array ( [x] => 100 [y] => 200 [z] => 300 [w] => 4000 ) Array ( [x] => 100 [y] => 2000 [z] => 3000 [w] => 4000 )
$a = 10; $b = &$a; echo "a = $a, b = $b \n"; $b++; echo "a = $a, b = $b \n"; unset($a); // unset($b) も可能 echo "b = $b \n"; // $a に対しては undefined error
a = 10, b = 10 a = 11, b = 11 a = , b = 11 a = , b = 12
$a = `ls *`; echo $a;
test.cpp test.exe test.html test.php
if (論理式) { 文1(複数の文も可) } else { 文2(複数の文も可) }
if (論理式1) { ・・・・・・ if (論理式2) { ・・・・・・ } else { ・・・・・・ } ・・・・・・ } else { ・・・・・・ }
01 if (a == b) { 02 max = y; 03 min = z; 04 if (min < 0.0) { 05 min = 0.0; 06 a = b; 07 } 08 } 09 else { 10 max = s; 11 min = g; 12 } 13 x = 9; 14 y = 10;
if (論理式1) { if (論理式2) 文1; } else 文2;
if (論理式1) if (論理式2) 文1; else 文2;
if (論理式) { 文1(複数の文も可) } else { 文2(複数の文も可) }
if (論理式1) if (論理式2) 文1; else 文2;
if (論理式) { 文1(複数の文も可) } else if (論理式) { 文2(複数の文も可) } ・・・ else { 文n(複数の文も可) }
switch (式) { [case 定数式1 :] [文1] [case 定数式2 :] [文2] ・・・・・ [default :] [文n] }
switch (data) { case 0 : ( data の値が 0 の時の処理) break; case 1 : ( data の値が 1 の時の処理) break; case 2 : ( data の値が 2 の時の処理) break; default : ( data の値がいずれでもない時の処理) }
for (初期設定; 繰り返し条件; 後処理) {
文(複数の文も可)
}
・・・
while (繰り返し条件) {
文(複数の文も可)
}
do { 文(複数の文も可) } while (繰り返し条件)
初期設定; while (繰り返し条件) { 文(複数の文も可) 後処理; }
foreach (配列変数名 as 値を入れる変数名) { 文 } foreach (配列変数名 as キーを入れる変数名 => 値を入れる変数名) { 文 }
// 配列 $x = array(1, 2, 3); echo "配列\n"; foreach ($x as $value) echo " 値: ".$value."\n"; foreach ($x as $key => $value) echo " キー: ".$key.", 値: ".$value."\n"; // 連想配列 echo "連想配列\n"; $y = array('first'=>10, 'second'=>20, 'last'=>30); foreach ($y as $value) echo " 値: ".$value."\n"; foreach ($y as $key => $value) echo " キー: ".$key.", 値: ".$value."\n";
配列 値: 1 値: 2 値: 3 キー: 0, 値: 1 キー: 1, 値: 2 キー: 2, 値: 3 連想配列 値: 10 値: 20 値: 30 キー: first, 値: 10 キー: second, 値: 20 キー: last, 値: 30
読み込むファイルの内容:
require_once('./array.def');
foreach ($x as $key => $value)
echo "キー: ".$key.", 値: ".$value."\n";
読み込まれるファイル(array.def)の内容:
$x = array('first'=>1, 'second'=>2, 'last'=>3);
キー: first, 値: 1 キー: second, 値: 2 キー: last, 値: 3
01 // 宣言だけ(要素数は 0 ) 02 $x = array(); // array(3) のように要素数を指定することも可 03 $x[0] = 1; 04 $x[1] = 2; 05 $x[] = 3; 06 print_r($x); 07 echo "\n"; 08 // 宣言と初期設定 09 $y = array(1, 2.3, "abc"); 10 $y[3] = 40; 11 print_r($y); 12 echo "\n";
Array ( [0] => 1 [1] => 2 [2] => 3 ) Array ( [0] => 1 [1] => 2.3 [2] => abc [3] => 40 )
$u1 = array(1, "abc", 2); $u2 = $u1; $u3 = &$u1; // $u1 の参照
01 /****************************/ 02 /* 平均点以下の人数 */ 03 /* coded by Y.Suganuma */ 04 /****************************/ 05 // データの入力 06 $x = array(); 07 echo "各人の点数を半角スペースで区切って入力して下さい(最後に負のデータ) "; 08 $str = trim(fgets(STDIN)); 09 $x[0] = intval(strtok($str, " ")); 10 $k = 0; 11 while ($x[$k] >= 0) { 12 $k++; 13 $x[$k] = intval(strtok(" ")); 14 } 15 // 平均点の計算 16 $mean = 0.0; 17 for ($i1 = 0; $i1 < $k; $i1++) 18 $mean += $x[$i1]; 19 $mean /= $k; 20 // 平均点以下の人数をカウント 21 $ct = 0; 22 for ($i1 = 0; $i1 < $k; $i1++) { 23 if ($x[$i1] <= $mean) 24 $ct++; 25 } 26 // 結果の出力 27 printf("結果: %d 人\n", $ct);
while ($x[$k]) {
$k += 1; $k = $k + 1;
$str = trim(fgets(STDIN)); $k = 0; while ($str >= 0) { $x[$k] = intval($str); $str = trim(fgets(STDIN)); $k++; }
$k = 0; fscanf(STDIN, "%d", $x[$k]); while ($x[$k] >= 0) { $k++; fscanf(STDIN, "%d", $x[$k]); }
$mean = $mean + $x[$i1]; $mean = $mean / $k;
$v1 = array(2); $v1[0] = array(10, 20, 30); $v1[1] = array(40, 50, 60);
$v2 = $v1; $v3 = $v1[0]; $v4 = &$v1; $v5 = &$v1[0];
50 30 100 -1 20 80 -1 // 改行だけを入力
01 /****************************/ 02 /* 平均点以下の人数 */ 03 /* coded by Y.Suganuma */ 04 /****************************/ 05 // データの入力と全体平均の計算 06 echo "クラス毎に,半角スペースで区切り各人の点数を入力してください(最後に負のデータ)\n"; 07 $x = array(); // データを入れる 2 次元配列 08 $m = array(); // 各クラスの人数を入れる 1 次元配列 09 $str = trim(fgets(STDIN)); // クラス 1 に対するデータの読み込み 10 $mm = 0; // 全体の人数 11 $mean = 0; // 全体の平均 12 $k1 = 0; // 行番号 13 while ($str) { 14 $k2 = 0; // 列番号 15 $x[$k1] = array(); // $x[$k1] を配列として定義(2 次元配列) 16 $y = intval(strtok($str, " ")); 17 $x[$k1][$k2] = $y; 18 $mean += $x[$k1][$k2]; 19 while ($y >= 0) { 20 $k2++; 21 $y = intval(strtok(" ")); 22 if ($y >= 0) { 23 $mean += $y; 24 $x[$k1][$k2] = $y; 25 } 26 } 27 $m[$k1] = $k2; 28 $mm += $k2; 29 $k1++; 30 $str = trim(fgets(STDIN)); 31 } 32 $mean /= $mm; 33 // 各クラスの平均点以下の人数 34 for ($i1 = 0; $i1 < $k1; $i1++) { 35 $ct = 0; 36 for ($i2 = 0; $i2 < $m[$i1]; $i2++) { 37 if ($x[$i1][$i2] <= $mean) 38 $ct++; 39 } 40 printf("クラス%d における平均点以下の人数: %d 人\n", ($i1+1), $ct); 41 }
$z = array(600, 'first'=>100, 'second'=>200, 400); $z[] = 500; $z['last'] = 300; print_r($z); $z[1] = 4000; $z['first'] = 1000; print_r($z);
Array ( [0] => 600 [first] => 100 [second] => 200 [1] => 400 [2] => 500 [last] => 300 ) Array ( [0] => 600 [first] => 1000 [second] => 200 [1] => 4000 [2] => 500 [last] => 300 )
function 関数名 (引数, ・・・) { 処理 }
01 /****************************/ 02 /* 関数(様々な引数) */ 03 /* coded by Y.Suganuma */ 04 /****************************/ 05 // クラス Complex 06 class Complex 07 { 08 public $x; 09 public $y; 10 function __construct($x1, $y1) { // コンストラクタ 11 $this->x = $x1; 12 $this->y = $y1; 13 } 14 } 15 // 関数 func 16 function func($x1, &$x2, $y1, &$y2, $z1, $x3 = 10) 17 { 18 $x1 += 10; 19 $x2 += 10; 20 $y1[0] = 100; 21 $y2[0] = 100; 22 $z1->x = 1000; 23 return ($x1 + $x2 + $x3); 24 } 25 26 $a1 = 1; 27 $a2 = 2; 28 $b1 = array(10, 20); 29 $b2 = array(10, 20); 30 $c1 = new Complex(1, 2); 31 32 print "関数を呼ぶ前\n"; 33 printf("\$a1 %d \$a2 %d \$c1 %d\n", $a1, $a2, $c1->x); 34 print_r($b1); 35 print_r($b2); 36 37 $d = func($a1, $a2, $b1, $b2, $c1); 38 39 print "関数を呼んだ後\n"; 40 printf("\$a1 %d \$a2 %d \$c1 %d \$d %d\n", $a1, $a2, $c1->x, $d); 41 print_r($b1); 42 print_r($b2);
関数を呼ぶ前 $a1 1 $a2 2 $c1 1 Array ( [0] => 10 [1] => 20 ) Array ( [0] => 10 [1] => 20 ) 関数を呼んだ後 $a1 1 $a2 12 $c1 1000 $d 33 Array ( [0] => 10 [1] => 20 ) Array ( [0] => 100 [1] => 20 )
01 /****************************/ 02 /* 関数(関数名) */ 03 /* coded by Y.Suganuma */ 04 /****************************/ 05 06 function add($s1, $s2) { 07 $s = $s1 + $s2; 08 return $s; 09 } 10 11 function sub($s1, $s2) { 12 $s = $s1 - $s2; 13 return $s; 14 } 15 16 function add_sub($fun, $s1, $s2) { 17 $s = $fun($s1, $s2); 18 return $s; 19 } 20 21 printf("%d\n", add(2, 3)); // 出力: 5 22 $kasan = "add"; // シングルクォーテーションマークでも可,以下同様 23 printf("%d\n", $kasan(2, 3)); // 出力: 5 24 printf("%d\n", add_sub("add", 2, 3)); // 出力: 5 25 printf("%d\n", add_sub("sub", 2, 3)); // 出力: -1
01 /****************************/ 02 /* 関数(可変長引数) */ 03 /* coded by Y.Suganuma */ 04 /****************************/ 05 06 function plus($kind, ...$str) { 07 if ($kind == 0) { 08 // 文字列 09 $s = ''; 10 while (count($str) > 0) 11 $s .= array_shift($str); 12 } 13 else { 14 // 数値 15 $s = 0; 16 foreach ($str as $value) 17 $s += $value; 18 } 19 return $s; 20 } 21 22 $str = plus(0, 'abc', 'def', 'ghi'); 23 printf("結合結果 : %s\n", $str); 24 $sum = plus(1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10); 25 printf("合計 : %d\n", $sum);
結合結果 : abcdefghi 合計 : 55
01 /****************************/
02 /* クラスと継承 */
03 /* coded by Y.Suganuma */
04 /****************************/
05 class Number
06 {
07 public $name; // var $name;
08 protected $feat; // var $feat;
09 function __construct($str = "数") // コンストラクタ
10 // function Number($str = "数") // コンストラクタ
11 {
12 $this->name = $str;
13 $this->feat = "数とは,・・・";
14 }
15 function out()
16 {
17 echo "Number クラスの定義です\n";
18 }
19 }
20
21 class Complex extends Number
22 {
23 private $r_part; // var $r_part;
24 private $i_part; // var $i_part;
25 function __construct($x, $y, $str = "複素数") // コンストラクタ
26 // function Complex($x, $y, $str = "複素数") // コンストラクタ
27 {
28 parent::__construct($str); // 親のコンストラクタ
29 // parent::Number($str); // 親のコンストラクタ
30 $this->r_part = $x;
31 $this->i_part = $y;
32 }
33 function out()
34 {
35 echo $this->feat."\n";
36 echo "($this->r_part, $this->i_part)\n";
37 }
38 }
39
40 $y = new Number();
41 echo $y->name."\n";
42 //echo $y->feat."\n"; 参照できない
43
44 $x = new Complex(1.0, 2.0);
45 echo $x->name."\n";
46 $x->out();
47 //echo $y->r_part."\n"; 参照できない
final function out()
数 Number クラスの定義です 複素数 数とは,・・・ (1, 2)
01 /************************************/ 02 /* スタティックメソッドとプロパティ */ 03 /* coded by Y.Suganuma */ 04 /************************************/ 05 class Knot { 06 const KT = 1852; 07 public static $m_s = 0.5144; // 値の変更可 08 public static function to_km($x) { 09 return $x * self::KT; 10 } 11 12 function out() { 13 echo "1 knot : ".self::KT." km/h\n"; 14 echo "1 knot : ".self::$m_s." m/s\n"; 15 echo "50 knot : ".self::to_km(50)." km/h\n"; 16 } 17 } 18 19 echo Knot::KT."\n"; 20 echo Knot::$m_s."\n"; 21 echo Knot::to_km(10)."\n"; 22 echo Knot::out(); // OK 23 24 echo "\n"; 25 $x = new Knot(); 26 //echo $x->KT."\n"; // error 27 //echo $x->m_s."\n"; // error 28 echo $x->to_km(10)."\n"; // OK 29 echo $x->out();
1852 0.5144 18520 1 knot : 1852 km/h 1 knot : 0.5144 m/s 50 knot : 92600 km/h 18520 1 knot : 1852 km/h 1 knot : 0.5144 m/s 50 knot : 92600 km/h
01 /****************************/ 02 /* オブジェクトの複製 */ 03 /* coded by Y.Suganuma */ 04 /****************************/ 05 class Complex { 06 public $r_part; 07 public $i_part; 08 function __construct($x, $y) 09 { 10 $this->r_part = $x; 11 $this->i_part = $y; 12 } 13 } 14 15 class Example { 16 public $x; 17 public $y; 18 public $c; 19 function __construct($x, $y) 20 { 21 $this->x = $x; 22 $this->y = $y; 23 $this->c = new Complex($this->x, $this->y); 24 } 25 } 26 // 基本オブジェクト 27 echo " 基本オブジェクト\n"; 28 $e1 = new Example(1, 2); 29 echo '$x '.$e1->x.' $y '.$e1->y."\n"; 30 echo '$c ('.($e1->c)->r_part.', '.($e1->c)->i_part.")\n"; 31 // $e1 を $e2 に代入後,$e2->y を 20,($e2->c)->r_part を 100 に変更 32 echo ' $e1 を $e2 に代入後,'."\n"; 33 echo ' $e2->y を 20,($e2->c)->r_part を 200 に変更'."\n"; 34 $e2 = $e1; 35 $e2->y = 20; 36 ($e2->c)->r_part = 200; 37 echo '$x '.$e1->x.' $y '.$e1->y."\n"; 38 echo '$c ('.($e1->c)->r_part.', '.($e1->c)->i_part.")\n"; 39 // $e1 のクローン $e3 を作成後,$e3->y を 30,($e3->c)->r_part を 300 に変更 40 echo ' $e1 のクローン $e3 を作成後,'."\n"; 41 echo ' $e3->y を 30,($e3->c)->r_part を 300 に変更'."\n"; 42 $e3 = clone $e1; 43 $e3->y = 30; 44 ($e3->c)->r_part = 300; 45 echo '$x '.$e1->x.' $y '.$e1->y."\n"; 46 echo '$c ('.($e1->c)->r_part.', '.($e1->c)->i_part.")\n";
$a = $b; $b = 10;
基本オブジェクト $x 1 $y 2 $c (1, 2) $e1 を $e2 に代入後, $e2->y を 20,($e2->c)->r_part を 200 に変更 $x 1 $y 20 $c (200, 2) $e1 のクローン $e3 を作成後, $e3->y を 30,($e3->c)->r_part を 300 に変更 $x 1 $y 20 $c (300, 2)
01 <?php 02 03 /****************************/ 04 /* 変数の有効範囲(スコープ) */ 05 /* coded by Y.Suganuma */ 06 /****************************/ 07 08 /*******************/ 09 /* クラス Example1 */ 10 /*******************/ 11 class Example1 { 12 private $pri; 13 protected $pro; 14 public $pub; 15 16 function Example1() { 17 $this->pub = 1000; 18 $this->pri = 2000; 19 $this->pro = 3000; 20 } 21 22 function sub1() { 23 printf("sub1 pub %d pri %d pro %d\n", $this->pub, $this->pri, $this->pro); 24 } 25 } 26 27 /*******************/ 28 /* クラス Example2 */ 29 /*******************/ 30 class Example2 extends Example1 { 31 function sub2() { 32 printf("sub2 pub %d pro %d\n", $this->pub, $this->pro); 33 // printf("sub2 pri %d\n", $this->pri); // 許されない 34 } 35 } 36 37 /****************/ 38 /* main program */ 39 /****************/ 40 // ブロック 41 $x = 10; 42 $z = 30; 43 if ($x > 5) { 44 printf("block x %d\n", $x); 45 $x = 15; 46 $y = 20; 47 printf("block x %d\n", $x); 48 printf("block y %d\n", $y); 49 } 50 else { 51 printf("block x %d\n", $x); 52 $x = -15; 53 printf("block x %d\n", $x); 54 } 55 sub(); 56 printf("x %d\n", $x); 57 printf("y %d\n", $y); // 最初の x が 1 の時は,y が未定義のためエラー 58 // クラス 59 $ex = new Example2(); 60 $ex->sub1(); 61 $ex->sub2(); 62 printf("public member( pub ) %d\n", $ex->pub); 63 64 /************/ 65 /* 関数 sub */ 66 /************/ 67 function sub() 68 { 69 $x = 40; 70 printf(" sub x %d\n", $x); 71 global $z; 72 printf(" sub z %d\n", $z); 73 } 74 75 ?>
block x 10 block x 15 block y 20 sub x 40 sub z 30 x 15 y 20
sub1 pub 1000 pri 2000 pro 3000 sub2 pub 1000 pro 3000 public member( pub ) 1000
情報学部 | 菅沼ホーム | 目次 | 索引 |