参考情報
- http://www.php.net/manual/ja/ (PHPマニュアル)
ファイルフォーマット
// test.php <?php // ここにコードを書く ?>
基本文法
定数
define("hensuu", "hoge!");
print(hoge);
変数
スカラー(英数字など)
配列
// @array = ("abc", "def", "ghi"); // perl の場合
$array[] = "abc";
$array[] = "def";
$array[] = "ghi";
まとめて指定するには、
$array = array("abc", "def", "ghi");
その他、explode() というのもある。
ハッシュ
$hash = array("hoge" => "naka", "foo" => "taka");
print($hash{"hoge"});
特殊型(ハンドラとか)
あとで
演算子
算術演算、比較演算、代入演算 は 省略。
論理演算子
| && | 論理積 |
| and | 〃 |
| || | 論理和 |
| or | 〃 |
| xor | 排他的論理和 |
| ! | 否定 |
論理積と論理和が2種類あるが、&&と||のほうが、優先順位が高い。
文字列の扱い方
- ダブルクォート
- シングルクォート
- ヒアドキュメント(<<END;)
文字列
文字列の中での特殊文字
以下の文字はバックスラッシュでエスケープする必要がある。
| ' | シングルクォート |
| " | ダブルクォート |
| \ | バックスラッシュ |
| \t | タブ |
| \n | 改行(\x0a) |
| $ | ドル文字 |
| \r | キャリッジリターン(\x0d) |
文字列連結
- ピリオド「.」
- プラス「+」
どちらでも連結できる。
制御構造
* if
for
for($i = 0; $i < 4; $i++) {
}
while
while($i < 10){
}
do while
do{
}while($i < 10);
foreach
ハッシュ用?
$hash = array("hoge" => "naka", "foo" => "taka");
foreach($hash as $key => $value){
print("\$hash{" . $key . "} = $value<br>");
}
break
ループを抜ける。
if elseif else
if($i == 0){
}elseif($i < 10){
}else{
}
switch
switch($i){
case "1":
hoge();
break;
case "2":
foo();
break;
default:
bar();
}
関数定義
値渡し
\*
function hoge($a) {
$a = $a + 1;
return $a;
}
参照渡し
function hoge(&$a){
$a *=$a;
}
$i = 10; hoge($i); print $i;
// → 100 が表示される
組み込み関数
- str_replace()
セッション管理
セッション変数
$_SESSION[hoge] = "ok";
オブジェクト指向プログラミング
クラスの定義
Class Point {
var $x;
var $y;
}
Class Box {
Point $a;
Point $b;
function getSize() {
$x = $b.x - $a.x;
$y = $b.y - $b.y;
return $x * $y;
}
ライブラリを使う前に、パスの設定
php.ini 内で、
include_path = ".:/usr/share/php:/usr/share/pear:/usr/share/phpids/lib"
また、個別のアプリケーションで、
$path = '/path/to/library'; set_include_path(get_include_path() . PATH_SEPARATOR . $path); //print get_include_path();
ライブラリを使う
PEAR
手元のFedora7にPEARが入ってなかったのでインストール。
$ sum yum install php-pear
WARNING: channel "pear.php.net" has updated its protocols, use "channel-update pear.php.net" to update
と怒られたので、以下を実行。
$ sudo pear channel-update pear.php.net
PEARでインストール可能なパッケージ一覧
インストールしてみる
$ sudo pear install Text_CAPTCHA
としたら、以下のエラーが出た。
Failed to download pear/Text_CAPTCHA within preferred state "stable", latest release is version 0.3.0, stability "alpha", use "channel://pear.php.net/Text_CAPTCHA-0.3.0" to install
"channel://xxxx" としないとダメらしい。stableバージョンが出てないから??
$ sudo pear install "channel://pear.php.net/Text_CAPTCHA-0.3.0"
これで成功。
ライブラリは、以下のディレクトリに入る。
/usr/share/pear/
ライブラリを使えるようにする
require_one('Text/CAPTCHA.php');
CAPTCHA を使ってみる。
折角、例として挙げたので、使ってみる。
他に色々必要なものをインストール。
$ sudo yum install php-gd $ sudo pear install "channel://pear.php.net/Image_Text-0.6.0beta"
(続きはあとで)
FAQ?
mb_ 系の関数が見つからない、って言われた
mbstring がデフォルトで入ってなかった。(Fedora7)
$ sudo yum install php-mbstring