2007年09月25日

開発環境、注釈、変数、配列、連想配列演算子、特殊文字

PHP が使用可能なサイトが増えつつあるので、Perl との相違を検証しておく。
Perl と違い PHP は、SQL RDBMS と連携しやすい。
PHP + MySQL 編も順次検証しながら作成していく。
PostgreSQL についても、MySQL との構文の違いを調査しておく。

■PHP 開発環境

・Apache、ActivePerl、PHP、MySQL のセットパッケージ phpdev4_5NT.exe で
開発環境を構築した。これで、PHP4 ベースの開発が可能である。
一般的には PHP3 がまだ主流かもしれない。
PHP4 独自の部分も調査しておく。

・phpdev4_5NT.exe は、インストール先を c:\ 固定としてパッケージされて
いるようである。
初期化ファイルや各種サンプルがドライブ、パスに依存していた。
他のドライブやパス構成に移動するには、説明が英語のため、けっこう苦痛
かもしれない。
うちのイントラは、IIS、ASP、Perl、Oracle がメインの開発環境なので、
PHP、MySQL は、おまけと言うことで、初期設定のまま使用することにする。

・phpdev4_5NT.exe のインストールは実に単純であった。
このパッケージは、NT、2000、XP 用である。
他に 9x 用のパッケージもあった。
また、ActivePerl や MySQL が含まれないパターンなどのパッケージもある。

・インストールすると、
c:/
phpdev/
apache/
manuals/
mysql/
mysqlfront/
perl/
php/
www/
cgi-bin/
phpdev4/
phpMyAdmin/
public/
test.htm
yaks.html
MYSQL README.txt
phpdev_start.bat
phpdev_stop.bat
PLEASE README.txt
と環境が構築される。

・IIS のサービスはそのままでも、phpdev_start.bat を実行すると、
Apache、ActivePerl、PHP、MySQL のサービスがプロンプトサービスとして
起動する。プロンプトサービスを閉じると IIS が再び有効になる。
尚、メモリの解放を見ると、最後に phpdev_stop.bat を実行した方が
良さそうである。これで、MySQL 等全てクローズされる。
実に単純に上げ下げできるので、たまにしか使わない開発環境としては
手作業で、phpdev_start.bat、phpdev_stop.bat を使用する方が便利である。

■ハロー PHP

・お約束の PHP 動作テスト。


はじめての PHP ですのん。

\n";
?>


・PHP は、fopen などの関数でファイルが見つからないと、エラーを表示して
処理が停止してしまう。
リターンコードで見つからないときの処理がしたいときなど、
エラートラップするには、関数の前に @ マークを付けて、次のようにする。
こうするとエラー抑制される。

$fno = @fopen("path/filename", 'r');

・PHP は、パーミッション設定が不要らしい。
実際にインターネット上で PHP が動作する環境がないので、今のところ
信じるしかない。(^^;
イントラネットでは www/ 配下で動作した。
CGI-Perl と同じに cgi-bin/ 配下に置くと動作しなかった。
(環境設定のせいかもしれない。)

・CGI-Perl の様に先頭に PHP へのパスと言うものはない。

・PHP のコード部分は、 で記述する。
これは、ASP の書き方に似ている。
他に

<% ... %>

での記述もサーバ設定で許していれば可能である。
標準的には、 となっている。

・PHP の FTP は、当然ながらアスキー(テキスト) 形式であるが、愛用の
ffftp.exe の自動判定に .php は含まれていなかった。
アスキーモードとしてアップロードするファイル拡張子に .php を追加した。
尚、サイト仕様によっては、.php3、.php4、.phtml など PHP の拡張子が
指定されている場合があるようである。
これらも自動判定拡張子に追加しておくと良いかも。

■注釈

// 『//』以降注釈となる
/* 複数行注釈開始
*/ 複数行注釈終了


注釈テスト

\n";

// 単一行注釈

/*
複数行注釈
複数行注釈
*/

?>


■定数

define ("DATA_MAX", 100);

$a = DATA_MAX;
print "

$a

\n";

■変数タイプ

$a 単純変数
$b[] 配列変数
count($b) 配列の要素数 (最大添字は、count($b) - 1 となる)
$c['key'] 連想配列

・変数には、大文字小文字の区別がある。

・基本的に Perl と同じ種類がある。
但し、書き方は少し異なる。
Perl の配列 @b[] は、PHP では、$b[] となる。
配列の最大添字 $#b の代わりは、count($b) - 1 となる。
連想配列 $c{'key'} は、$c['key'] となる。

・シングルコーテーション「'」とダブルコーテーション「"」の使い分けは
Perl と同じである。
「"」間は、$variable や \n が埋め込み展開される。


変数 \$a = $a

\n";
print "

変数 \$A = $A

\n";
print "

変数 \$b = $b

\n";
print "

変数 \$c = $c

\n";
print "

変数 \$d[0] = $d[0]

\n";
print "

変数 \$d[1] = $d[1]

\n";
print "

変数 \$dmx = $dmx

\n";
print "

変数 \$h['data1'] = ${h['data1']}

\n";
print "

変数 \$h['data2'] = ${h['data2']}

\n";

?>


・「"」中など、$variable を展開する場合、誤解析される場合がある。
そのときは、${h['data1']} のように、$ の次から { ... } で囲むと良い。

・変数は数値でも文字でも入る。VB の variant と同じと思えばよい。

・ユーザ関数内で作成した変数は、ローカル変数となる。
Perl のような my()、local() の指定はない。
但し、PHP では、グローバル変数は関数内ではそのまま扱えない。
global $variavle; を関数内で宣言すると、グローバル変数 $variavle に
アクセスできる。
static 宣言は、C 言語での意味と同じである。


変数 \$a = $a

\n";
print "

変数 \$b = $b

\n";
print "

変数 \$c = $c

\n";
print "

変数 \$d = $d

\n";
print "

変数 \$e = $e

\n";

/*
========================================================================
テスト関数
========================================================================
*/
function test($p) {

global $a;
static $b;
$c = 1;

$a += 10;
$b += 20;
$c += 30;
$p += 40;

return(50);

}

?>


・C 言語と同じように引数は値渡しである。
このサンブルを実行すると、
変数 $a = 110
変数 $b = 200
変数 $c = 300
変数 $d = 400
変数 $e = 50
と表示される。
$a は、関数 test() で、global $a; と宣言しているので、110 になる。
$b、$c、$d は、関数 test() 内と別物となり、影響を受けていない。

■演算子

+ 加算
- 減算
* 掛け算
/ 割り算
% 余り
++ インクリメント (+ 1)
-- デクリメント (- 1)
pow() べき乗
<< 左ビットシフト
>> 右ビットシフト
. 文字列結合
ereg() 正規表現

++$i は、$i が参照される前にインクリメントされる。
$i++ は、$i 参照後にインクリメントされる。

■代入

= 単純代入
+= 加算代入
-= 減算代入
*= 乗算代入
/= 除算代入
.= 文字列結合代入

$a = $a + $b; は、$a += $b; と等しい。
$a = array('abc', 'def', 'ghi'); も OK。
16 進数は、C と同じ 0x00ff と表現。

■特殊文字 (エスケープシーケンス)

\n 改行
\r キャリッジリータン
\t タブ
\\ \
\$ $
\" "
\' '

『"』ダブルコートリテラルで展開される。
『\"』『\$』など『"』や『$』が直接記述できない箇所で使用する。
posted by 牙人 at 00:48| 東京 ☁| Comment(0) | TrackBack(6) | php関数 | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。