Java no memo

自分のためのJavaメモ。

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);

#




phpに限らないオブジェクト指向の話

モジュール化(カプセル化、情報隠ぺい)について プロパティは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{

}; 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情報 ■ クッキーとセッション ■ データベースへのアクセス

#