静岡理工科大学 | 菅沼ホーム | PHP 目次 | 索引 |
$x = 123; echo '変数$xの値は '; // そのまま出力 echo $x."<BR>\n"; echo "変数$xの値は ".$x."<BR>\n"; // 「$xの値は」を変数名とみなしている echo "変数 $x の値は ".$x."<BR>\n"; // スペースで区切って変数を明確にする echo "変数 ${x} の値は ".$x."<BR>\n"; // 「{」と「}」で区切って変数を明確にする echo "変数 {$x} の値は ".$x."<BR>\n"; // 「{」と「}」で区切って変数を明確にする echo "変数 \$x の値は ".$x."<BR>\n"; // 「\」で「$」の機能を無効にする
変数$xの値は 123 変数 123 変数 123 の値は 123 変数 123 の値は 123 変数 123 の値は 123 変数 $x の値は 123
$y = 123; $x = <<<hd_e これは,ヒヤドキュメントの例です.<BR> 変数\$yも評価({$y})<BR> されます.<BR>\n hd_e; echo $x;
これは,ヒヤドキュメントの例です. 変数$yも評価(123) されます.
// 宣言だけ $x = array(); $x[0] = 1; $x[1] = 2; $x[2] = 3; $x[] = 4; $x[] = 5; print_r($x); echo "<BR>\n"; // 宣言と初期設定 $y = array(10, 20, 30); $y[3] = 40; $y[4] = 50; print_r($y); echo "<BR>\n"; // キーによる設定と参照(その1) $z = array('first'=>100, 'second'=>200, 400); $z[] = 500; $z['last'] = 300; print_r($z); echo "<BR>\n"; // キーによる設定と参照(その2) $w = array(4000, 'first'=>1000, 'second'=>2000); $w[] = 5000; $w['last'] = 3000; print_r($w); echo "<BR>\n"; // 2 次元配列 $xx = array(); $xx[0] = array(); $xx[1] = array(); $xx[0][0] = -1; $xx[0][1] = -2; $xx[0][2] = -3; $xx[1][0] = 1; $xx[1][1] = 2; $xx[1][2] = 3; print_r($xx); echo "<BR>\n";
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 ) Array ( [0] => 10 [1] => 20 [2] => 30 [3] => 40 [4] => 50 ) Array ( [first] => 100 [second] => 200 [0] => 400 [1] => 500 [last] => 300 ) Array ( [0] => 4000 [first] => 1000 [second] => 2000 [1] => 5000 [last] => 3000 ) Array ([0] => Array([0] => -1[1] => -2[2] => -3)[1] => Array([0] => 1[1] => 2[2] => 3) )
$u1 = array(1, "abc", 2); $u2 = $u1;
$v1 = array(2); $v1[0] = array(10, 20, 30); $v1[1] = array(40, 50, 60); $v2 = $v1;
$v4 = $v1[0];
<!DOCTYPE HTML> <HTML> <HEAD> <TITLE>パラメータ情報</TITLE> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8"> <LINK REL="stylesheet" TYPE="text/css" HREF="../../master.css"> <SCRIPT TYPE="text/javascript"> function GetParameter() { let result = new Array(); if(1 < window.location.search.length) { // 最初の1文字 (?記号) を除いた文字列を取得する let str = window.location.search.substring(1); // 区切り記号 (&) で文字列を配列に分割する let param = str.split('&'); for (let i1 = 0; i1 < param.length; i1++ ) { // パラメータ名とパラメータ値に分割する let element = param[i1].split('='); let Name = decodeURIComponent(element[0]); let Value = decodeURIComponent(element[1]); // パラメータ名をキーとして連想配列に追加する result[Name] = Value; } } return result; } </SCRIPT> </HEAD> <BODY CLASS="white"> <H1>パラメータ情報</H1> <H3>PHP による方法</H3> <?php if(isset($_GET['par1'])) { $p1 = $_GET['par1']; print("$p1<BR>\n"); } if(isset($_GET['par2'])) { $p2 = $_GET['par2']; print("$p2<BR>\n"); } ?> <H3>JavaScript による方法</H3> <SCRIPT TYPE="text/javascript"> result = GetParameter(); document.write(result['par1'] + "<BR>"); document.write(result['par2'] + "<BR>"); </SCRIPT> </BODY> </HTML>
. : 文字列の結合 + : 加算(配列の場合は要素の和集合,後述) - : 減算 * : 乗算 / : 除算 小数点以下が常に計算される ( floor($x / $y),intval($x / $y),(int)($x / $y),(integer)($x / $y) ) % : 余り 被除数,除数を共に整数型に変換(小数点以下を切り捨て)してから計算 ( 7.3 % 2.3 は,1 ) = : 代入 ++ : インクリメント演算子( 1 だけ増加) -- : デクリメント演算子( 1 だけ減少)
> より大きい 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 | 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); echo "<BR>\n"; print_r($d1); echo "<BR>\n"; // キー $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); echo "<BR>\n"; print_r($d2); echo "<BR>\n";
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 <BR>\n"; $b++; echo "a = $a, b = $b <BR>\n"; unset($a); // unset($b) も可能 echo "a = $a, b = $b <BR>\n"; function add(&$x) { $x++; } add($b); echo "a = $a, b = $b <BR>\n";
a = 10, b = 10 a = 11, b = 11 a = , b = 11 a = , b = 12
$a = `ls *`; echo $a."<BR>\n";
exec.php test.php test1.php test2.php
if (論理式) { 文1(複数の文も可) } else { 文2(複数の文も可) }
if (論理式) { 文1(複数の文も可) } else if (論理式) { 文2(複数の文も可) } ・・・ else { 文n(複数の文も可) }
switch (式) { [case 定数式1 :] [文1] [case 定数式2 :] [文2] ・・・・・ [default :] [文n] }
for (初期設定; 繰り返し条件; 後処理) {
文(複数の文も可)
}
while (繰り返し条件) {
文(複数の文も可)
}
do { 文(複数の文も可) } while (繰り返し条件) ;
foreach (配列変数名 as 値を入れる変数名) { 文 } foreach (配列変数名 as キーを入れる変数名 => 値を入れる変数名) { 文 }
$x = array('first'=>1, 'second'=>2, 'last'=>3); foreach ($x as $key => $value) echo "キー: ".$key.", 値: ".$value."<BR>\n";
キー: first, 値: 1 キー: second, 値: 2 キー: last, 値: 3
読み込むファイルの内容:
require_once('./array.def');
foreach ($x as $key => $value)
echo "キー: ".$key.", 値: ".$value."<BR>\n";
読み込まれるファイル(array.def)の内容:
$x = array('first'=>1, 'second'=>2, 'last'=>3);
キー: first, 値: 1 キー: second, 値: 2 キー: last, 値: 3
function 関数名 (引数, ・・・) { 処理 }
function message($str = "default message") { return $str; } echo message()."<BR>\n"; echo message("新しいメッセージ")."<BR>\n";
default message 新しいメッセージ
01 class Number 02 { 03 public $name; // var $name; 04 function Number($str = "数") // コンストラクタ 05 { 06 $this->name = $str; 07 } 08 } 09 10 class Complex extends Number 11 { 12 private $r_part; // var $r_part; 13 private $i_part; // var $i_part; 14 function Complex($x, $y, $str = "複素数") // コンストラクタ 15 { 16 parent::Number($str); 17 $this->r_part = $x; 18 $this->i_part = $y; 19 } 20 function out() 21 { 22 echo "実部 = $this->r_part, 虚部 = $this->i_part <BR>\n"; 23 } 24 } 25 26 $y = new Number(); 27 echo $y->name."<BR>\n"; 28 29 $x = new Complex(1.0, 2.0); 30 echo $x->name."<BR>\n"; 31 $x->out();
数 複素数 実部 = 1, 虚部 = 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
<?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>
<!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';"
静岡理工科大学 | 菅沼ホーム | PHP 目次 | 索引 |