プログラミング php
#2
PHP : htmlの中に直接埋め込んで書くことができる。
<?php 開始タグ
?> 終了タグ
echo 文字列を出力する
”文字列”ダブルクォーテーションで囲む
; セミコロン 分の区切り
// 1行コメント
# 1行コメント
/* */ 複数行コメント
#4
変数 : データにつけるラベル
データ型
-文字列 string
-数値 integer float (整数、浮動小数点数)
-論理値 boolean / true false
-配列
-オブジェクト
-null
PHP終了タグ
?> そのあとに何かを出力する必要がなければ、省略することが推奨されている
$変数名
= データを割り当てる。右辺を左辺に代入するという意味。(右辺が左辺と等しいという意味ではない)
代入演算子
例)$msg =
var_dump($); データ(変数)の型と値を教えてくれる
#5
定数 :変更されない値につけるラベル
define("定数名","値");
定数名は慣習的にすべて大文字を使う
定数は変更されない値なので新しい値を=でつけようとしても
エラーになる
var_dump(___LINE___); 現在の行数を出力
var_dump(___FILE___); ファイル名を出力
var_dump(___DIR___); ディレクトリ名を出力
#6
数値型の演算
+ - * / %(割った余り) **(べき乗)
例) $x = 10 % 3;
$y = 30.2 / 4;
var_dump($x);
単項演算子 ++(1を足す) --(1を引く)
$x ++;
代入を伴う演算子
$x = 5;
$x = $x +2; → $x += 2;と表現できる
+に限らず- * / %にも使える
#7
文字列を扱う
""(ダブルクォーテーション)特殊文字(\n)改行(\t)タブ、変数の展開ができる
''(シングルクォーテーション) できない
{$変数}
${変数}
{}で変数だとわかりやすくするために囲う
文字列の連結は.を使う
$s = "hello" . "world" ;
#8
if 条件分岐
if(条件A){
条件が真の時に行う処理
} elseif(条件B){
Aは偽だがBは真のときに行う処理
} else {
偽の場合の処理
}
比較演算子
> より大きい
< より小さい
>= 以上
<= 以下
== ~と等しい、値の比較
=== ~と等しい、値とデータの型の比較
!= 等しくない、値の比較のみ
!== 等しくない、値と型の比較
論理演算子
and &&
or ||
not !
#9
真偽値
falseになる場合
文字列:空,0
数値:0,0.0
論理値: false
配列:要素の数が0
null
if(x){
echo "";
}
xが0でないとき、実行される
(x == true)と同じ
三項演算子
例)
$max = ($a > $b)? $a : $b;
条件が真のときa,偽のときbをmaxに代入しなさいという意味
if($a>$b){
$max=$a;
} else {
$max=$b;
}
#10
switch 条件分岐
変数がとりうる値があらかじめいくつか決まっていて
それに対して処理を振り分けたい場合にすっきり書く
signalがとりうる値 case文で書く caseの処理を終えるとき break
どれにも当てはまらない場合 default
例)
switch($signal){
case"red":
echo"stop!";
break;
case"blue":
case"green": 条件がblue もしくはgreenの場合という意味になる
echo"go!";
break;
case"yellow":
echo"caution!";
break;
default:
echo"wrong signal"
break;
}
#11
ループ処理 (繰り返し処理)
while
do...while
例)
①判定位置が前
$i = 0;
while($i < 10){
echo $i;
$i++;
}
⓶判定位置が後ろ
do{
echo $i;
$i++;
}while($i<10);
iが10より大きい場合、①では何も処理されない。⓶では1度だけ処理される。
#12
ループ処理 for
break: ループを抜ける
continue: それ以降の処理を実行せずに次のループに移る
for(1.ループが始まる前の初期化処理 2.ループが終わる条件 3.ループの処理が終わるごとに行う条件){
echo$
}
例)
for($i =0; $i <10; $i++){
if($ === 5){
break;
}
echo $i;
}
i=5のときにループを抜けるので0~4まで表示
for($i =0; $i <10; $i++){
if($ === 5){
continue;
}
echo $i;
}
i=5だけ処理が実行されない
#13
配列
keyとvalueがペアになったデータ構造
array
例)
$sales = array(
"apple" => 200,
"banana" => 300,
"orange" => 600,
);
リンゴ200個、バナナ300個、オレンジ600個
array()は[]で表せる
$sales = [
"apple" => 200,
"banana" => 300,
"orange" => 600,
];
var_dump($sales["apple"]);
$sales["apple"] = 300; と書き換えもOK
・keyは省略することもできる
省略した場合、0,1,2と0からの連番となる。
例)
$colors = ["red", "blue", "pink"];
var_dump($colors[1]);
red = 0
blue = 1
pink = 2
#14
foreach : 配列の内容をループ処理で取り出せる
foreach ($sales as $key => $value){
echo"($key)$value";
}
foreach($colors as $value){
echo"$value";
}
foreach if while for コロン構文
foreach($colors as $value):
echo"$value";
endforeach;
{}を: end~;に変えることもできる
→HTMLに埋め込むときにすっきり書ける
<ul>
<?php foreach($colors as $ value): ?>
<li><?php echo "$value"; ?><li>
<?php endforeach; ?>
</ul>
#15
関数 似たような処理を纏めて登録したいとき
function 関数名(){
まとめておきたい処理
}
function sayHi(){
echo"hi!";
}
呼び出すとき
sayHi();
関数の実行値に引数というデータを指定することもできる
function sayHi($name = "tanaka"){
echo"hi!". $name;
}
引数は,(カンマ)区切りでいくつでも登録できる
引数に初期値を与えることもできる
引数に指定を与えなかったときは初期値が表示される
sayHi("Tom");
sayHi(); → tanaka
関数から返り値をもらうことも可能
return: その時点で関数の処理を終了させつつ、呼び出しをもとに値を返す
function sayHi($name = "tanaka"){
return"hi!". $name;
}
例)
$s = sayHi();
var_dump($s);
#16
関数内で定義した変数はその関数内でのみ有効
1.
function sayHi($name){
$lang = "php";
echo "hi! $name from $lang";
}
$langは上記関数内でのみ有効となる
関数外で
var_dump($lang); としても、何も出ない。
2.
$ lang = "ruby";
function sayHi($name){
$lang = "php";
echo "hi! $name from $lang";
}
$langは上記関数内でのみ有効となる
var_dump($lang);とすると、rubyと出力される。
#17
ceil(); 小数点以下を切り上げる
$x = 5.6;
echo ceil($x); //6
floor(); 小数点以下を切り捨てる
$x = 5.6;
echo floor($x); //5
round(); 四捨五入をする
$x = 5.6;
echo floor($x); //6
rand(); 乱数を生成する
echo rand(1,10); 1~10までの適当な数字をランダムに表示
strlen(); 文字列のバイト数を数える(半角1文字、全角2文字)
mb_strlen();文字列の文字数を数える(半角も全角も1文字)
printf(); 書式を指定して値を表示する
$s1 ="hello";
$s2 ="ねこ";
printf("%s - %s - %.3f" , $s1, $s2, $x);
%s char * 文字列を入力する
%f float 実数を入力する.数字…小数第何位まで表示するかという指定
count(); 要素の数を数える
implode(); 配列の要素を区切り文字で連結し、文字列にして返す
$colors = ["red", "blue", "pink"];
echo count($colors);
echo implode("@", $colors);