php
phpについて
プログラム部分
<script language="PHP"> ... </script> <?php .... ?> <? ..... ?> <% ..... %>
コメント
# // /* ~ */
ヒアドキュメント
Print <<< LabelId ~ 複数行 ~ LabelId;
文字列の連結は「.」で
$name = 'tama'; echo 'こんにちは'.$name.'さん。';
echoとprint
ehoc 'カンマ','で区切って','出力できる'; print 'できない';
print_rとvar_dump
$list = array('Tokyo' => '東京', 'Osaka' => '大阪'); print_r($list); //配列の情報も書き出す Array ( [Tokyo] => 東京 [Osaka] => 大阪 ) var_dump($list); //詳細に書き出す array(2) { ["Tokyo"]=>string(6) "東京" ["Osaka"]=>string(6) "大阪" }
エスケープシーケンス
echo "\n"; //改行 echo '\n'; //\n
文字列中の変数展開
$name = 'poch'; echo "$name さん。${name} さん。\n"; //'poch さん。poch さん。 echo '$name さん。${name} さん。\n'; //$name さん。${name} さん。
変数の参照
変数 =& 他の変数
定数
define("TAX5", 0.05); define("TAX8", 0.08); $year = 2014; $month = 3;
if( ($year > 2014) || ($year == 2014 && $month >= 4) ){ echo 1000 * (1 + TAX8),'<br/>'; }else{ echo 1000 * (1 + TAX5),'<br/>'; }
比較演算子の注意
if( $year = 2014 ) ←間違い!! if( $year == 2014 )
switch文
$val = 1; switch ( $val ) { case 1: break; case 2: break; default: break; }
三項演算子
条件式 ? 真の場合 : 偽の場合
$val = 1; $msg = $val == 1 ? '1です' : '1以外です' ; echo $msg;
while文……条件が真の間ループ。
$val = 1; while ( $val < 10 ){ echo $val; $val += 1; }
break、continueについて
break、continueの後に階層を指定することもできる。
while(条件) { while(条件) { if(条件) { break 2; //この場合、外のwhileも抜ける } } }
do while文
$val = 1; do{ echo $val; $val += 1; }while( $val < 10 );
for文
for( $i = 0; $i < 10; $i++ ){ if( $i % 3 == 0) echo $i .'<br/>'; }
for( $x = 0, $y = 10; $x < 10; $x++, $y--){ echo 'xは'.$x .'yは'.$y.'<br/>'; }
foreach文 ※条件式のとこ注意
$list = array('東京','大阪','名古屋'); foreach( $list as $city ){ echo $city.'<br/>'; }
foreach文とキーと値
$list = array('Tokyo' => '東京', 'Osaka' => '大阪'); foreach ($list as $key => $value){ print $key.'=>'.$value.'<br/>'; }
配列
$citylist[0] = '東京'; $citylist[1] = '大阪'; foreach ($citylist as $city){ print $city.'<br/>'; } $citylist['tokyo'] = '東京'; $citylist['osaka'] = '大阪'; print_r($citylist); //Array ( [tokyo] => 東京 [osaka] => 大阪 )
※注意 $var['8']と$var[8]は同じになってしまう。
定数もキーにできる
$price[TAX5] = 1000 * (1 + TAX5); echo TAX5.'<br/>'; echo $price[TAX5].'<br/>';
キーの自動付与
$val = 100; $val = 200; print_r($val); // Array ( [0] => 100 [1] => 200 ) $val = array(10 => '東京', '大阪', '名古屋'); print_r($val); // Array ( [10] => 東京 [11] => 大阪 [12] => 名古屋 )
空の配列
$val = array(); print_r($val); // Array ( ) $val = array('Tokyo' => '東京', 'Osaka' => '大阪', 'Nagoya' => '名古屋'); print_r($val); // Array ( [Tokyo] => 東京 [Osaka] => 大阪 [Nagoya] => 名古屋 )
多次元配列
$key1 = array('A', 'B', 'C'); $key2 = array('a', 'b', 'c'); $val = array($key1, $key2); print_r($val[0][1]); // B print_r($val[1][1]); // b print_r($val); // Array ( [0] => Array ( [0] => A [1] => B [2] => C ) [1] => Array ( [0] => a [1] => b [2] => c ) )
関数と呼出し
function plus($num1, $num2){ return $num1 + $num2; } echo plus(1,20);
#
モジュール化(カプセル化、情報隠ぺい)について プロパティはprivate。 accessor(getterとsetter)を使う。publicかprotected。 set+プロパティ名(先頭は大文字)。 get+プロパティ名(先頭は大文字)。
class Dog{ private $name; public function setName($n){ $this->name = $n; } public function getName(){ return $this->name; } } $myDog = new Dog(); $myDog ->setName("pochi"); print($myDog ->getName());
イミュータブル(不変)オブジェクトとは、setterを使わないで、 コンストラクタで値を設定し、再代入しないオブジェクト。
}; namespace myspace\subspace{
};
■ PHPに用意されている関数
1.文字型関数 ・英字の判別(ctype_alpha, ctype_alnum) ・数字の判別(ctype_digit) ・大文字・小文字の判別(ctype_upper, ctype_lower) 2.文字列関数 ・文字列の長さを取得(strlen, mb_strlen) ・文字列の一部を取得(substr, mb_substr) ・文字列の一部を他の文字に置き換える(str_replace) 3.変数操作関数 ・変数の型を取得(gettype) ・数字または数値文字列の判別(is_numeric) ・型のチェック(is_bool, is_float, is_int, is_string, is_null) 4.配列関数 ・連想配列に含まれるキー毎に変数を作成(extract) ・特定の値が配列に含まれているか調べる(in_array) ・特定の値が配列に含まれているか調べキーを返す(array_search) 5.ファイル関数 ・ファイルのオープンとクローズ(fopen, fclose) ・ファイルをロックする(flock) ・ファイルから1行読み込む(fgets, feof) 6.日付関数 ・日時を取得する(time, date) ・日時の値を個々に取得する(getdate) ・日時の値からタイムスタンプを取得する(mktime) 7.数学関数 ・乱数を生成する(rand, mt_rand) 8.その他の関数 ・スクリプトを終了する(exit, die)
■ GET情報、POST情報 ■ クッキーとセッション ■ データベースへのアクセス