| 情報学部 | 菅沼ホーム | 目次 | 索引 |
<?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
, (多次元:
)


| 情報学部 | 菅沼ホーム | 目次 | 索引 |