PHPプログラミング(基本)

Last-modified: 2007-08-05 (日) 15:19:17

参考情報

ファイルフォーマット

// 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種類あるが、&&と||のほうが、優先順位が高い。

文字列の扱い方

  1. ダブルクォート
  2. シングルクォート
  3. ヒアドキュメント(<<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