IT関連

PHP 自分の備忘録

投稿日:2019年9月24日 更新日:

知識

文字コード

PHPはUTF-8N(ボムなし)で保存する。BOMはByte Order Markの略称。

改行コードはLinuxに入れる場合はLFで。

LF(UNIX.Linux.MacOS)
LF+CR(Windows)

文字化けが起きたとき調べること

1.PHPファイルを保存したときの文字コード
2.PHPファイル内で指定した文字コード(meta charset)
3.サーバ内の文字コード
4.PHPインタプリタ内の文字コード
5.表示するブラウザの文字コード

エスケープシーケンス

Macの場合バックスラッシュは「Option+¥」で出せる。

\n 改行
\t タブ
\\ バックスラッシュ
\$ ドル記号
\” 二重引用符

変数の決まり

・変数の前には$をつける
・一文字目は半角アルファベットか半角アンダースコア
・二文字目は半角アルファベットか半角アンダースコアか半角数字
・アルファベットの大文字・小文字は区別される。
・ハイフンは使えない
・変数名の後ろは半角スペースをあける。空けたくない場合は{}で括る。

 

基礎

文字の結合

文字をつなげるときはドットでつなぐ

エスケープ処理

別名サニタイジング(消毒、無毒化)

 

 

関数類

 絶対値を返す abs

(絶対値とは原点からの距離、-はない)

符号を逆転する

小数点以下を切り捨て floor

小数点以下を切り上げ ceil

整数の下2桁を切り捨てする(割引)

1080円を1000円や、1250円を1200円にする。
例えば1080を100で割ると10.8それをfloorすると10になり、X100すると1000円。
1250を100で割ると12.5になり、12になり、X100すると1200円になる。

ROUNDDOWNする

PHPはROUNDしかなく強制的に四捨五入されてしまうので、ROUNDDOWNは難しいみたい。円周率を2桁でROUNDDOWNする場合は簡単だが、10桁の場合はちょうど繰り上がりする。

大文字に変換 strtoupper

文字の切り出し substring

文字の出現数のカウント substr_count

その文字列の中に、特定の文字が何回現れたか

何文字目にあるかを探す strpos

行の先頭や行末のスペースを取り除く trim

ランダム値を取得する rand

引数1が最小値、引数2が最大値で指定

四捨五入 round

小数の桁を指定して表示する number_format

通常はroundで事足りるが、0をroundした場合は、少数桁は表示されず0となる。number_formatを使ってあげるとよい。

置換 str_replace

文字数の長さ strlen

数字の先頭を0で桁埋め sprintf

数字の0埋め str_pad

 配列から最大値/最小値 max/min

連想配列でmaxとmin

ややこしそうに見えるがキーと値は並列の1行もの。maxやminの結果はあくまで値の最大値と最小値を返す。キーは関係ない。

 

連想配列でカウント

これも上記と同じ。キーと値は並列の1行もの。キーと値の1対の数がcountで返される。

 

配列にある値を検索してインデックスを返す

 

文字列を数値・整数に変換する

キャスト演算子を使う

intval関数を使う。変換できない文字列を渡した場合は0になります。小数点以下の切り捨てにも使える。

10進数を2進数に変換する

 

配列から先頭の要素を取り出す array_shift

配列の先頭の要素(一番左)を取り出して他の要素も左に詰める。

戻り値をとるようにすれば、取り出した要素の値を受け取れる

 

配列の末尾から要素を取り除く array_pop

 

配列の先頭を後方に移動し、元ある要素を左にずらす

「あいうえお」の「あ」を後方に持っていき、「いうえお」を先頭側にずらし「いうえおあ」にするやり方。

 

配列の最後を先頭に移動し、元ある要素を右にずらす

array_popで末尾のデータを抜き取れ、array_shiftを使えば配列の先頭に追加できる。両方とも使えば実現できる。

 

配列の先頭の要素に挿入し右にずらす。array_unshift

第1引数に配列を、第2引数に挿入したい値を入れる。

挿入された他の要素は右にずれる、というか再度番号が振り直される感じ。

第2引数以降のパラメータも増やしてもいいみたい。順番は下記の通り。

 

配列の最後の要素の後ろに挿入する array_push

普通に$array[] =とした方がいい。関数を使うとその分のオーバーヘッドが必要になる。

 

 

 

四則演算

除算

剰余(割り算のあまり)

累乗計算

どちらでもOK

単項演算子

加算代入(足しこみ)

 

文字列と数字数値の判定

数字かどうかを判定する is_numeric

型が文字列であっても数値に変換できるものは数値として判定される面倒な仕様

整数値かどうかを判定する is_int

’99’などの文字列はfalseになってしまう。型として文字のものは文字として認識されるので良い仕様。

文字列かどうかを判定する ctype_digit

’99’は文字と認識されtrueになる。型として文字なものは文字として認識するので良い仕様。

 

 

変数と定数

定数を定義 const

定数名は大文字で書くこと。

定数を定義 define

constとの違いはdefineは関数なので、引数には関数でもOK。

変数のデータを消去

変数の形を調べる

 

 

 条件文

条件式if

==は型無視、===は型も判定

条件式 elseif

elseifは何度でも重ねられる。{}の閉じ忘れに注意

等しくない(型無視)

<>は使わない。
等しい場合は、!=(型無視)、!==(型も含む)

Switch文

select文。上から順に比較する。各比較にbreakを付けること。
breakがあればそこでswitch文を抜けるが、breakがなければ引き続き次のcase比較をし続けてしまう。

比較演算子

 

 

ループ文

与えられた整数回数足しこむ

n個の文字列を出力する

与えられた文字数からカウントダウン

ファイルから配列へ

while文のエレガントな書き方

while文の書き方

whileで指定した条件に合致したら継続してループし、外れたら抜ける。

do-whileの書き方

最初一回は必ず実行したいときはdo-whileを使う。

whileで指定した条件に合致したら継続してループし、外れたら抜ける。

 

foreachで配列の値を全て取り出す 配列read

元の配列が$arrayでasの右に値となる変数。

foreachで連想配列の値を取り出す

readして連想配列をchainしてoutput

連想配列から条件を指定したり並び替えて連送配列へ

 

 

配列

配列とは

・変数の中に別の変数をつくる仕組み。
・中の変数の1つ1つを要素という。3つあれば3つの要素。
・要素にはそれぞれ異なる名前のキーが必要。文字か整数。
・要素に代入されたデータを値という。
・キーが文字列の配列を連想配列という。キーが数字の配列を単に配列という。
・変数=配列。変数名=配列名となる。

配列の初期化

作り方① ひとつづつ順番に値を代入していく

注意

変数というのは代入されて初めて定義され型を持つ。

②ひとつづつキー名を指定して要素を作る

③array関数を使う方法(インデックス配列の場合)

 

④array関数を使う場合(連想配列の場合)

⑤explodeで分割して放り込む

カンマやスペースで文字列を分割するとき。
第一引数に区切り文字、第二引数に文字列。結果は配列に。

さらに追加したい場合は

とすればいい。

配列をすべてわかりやすく表示する

要素の削除

配列の要素数のカウント

空行あった場合の配列に入れる処理
改行コードを最初に取るとwhile文の判定で止まってしまう。

配列を使ったランダムくじびき

N数分、配列を準備する。(席数確保例)

配列の並び替え

配列の並び替え(降順)

配列の数値を全て足す(加算)

$array = [5,4,3,2,1];
echo array_sum($array); //15

 

連想配列

連想配列(配列キーを文字列で)

連想配列に追加

連想配列の書き換え

連想配列の削除

連想配列を値で並び替え(昇順) asort

連想配列を値で並び替え(降順) arsort

連想配列をキーで並び替え(昇順) ksort

連想配列をキーで並び替え(降順) krsort

複数行を連想配列に入れるやり方

 

 

二次元配列

2次元配列

出現回数をカウントする

 

 

日付

date関数

例 2015年4月1日午後4時3分9秒なら

日付の計算

標準時間の設定

 

 

便利関数

ディレクトリ情報を取得 dirnama

Laravelのコントローラで動かした場合

 

 

その他

標準入力からの取得

スポンサーリンク




スポンサーリンク




-IT関連
-, ,

執筆者:


comment

Your email address will not be published. Required fields are marked *

関連記事

Apacheのバーチャルホストの設定 XAMPPやLAMP

備忘録なので内容は適当です。 バーチャルホストとは、1台のマシン、1つのApacheというウェブサーバで、複数のアプリやHPを立ち上げようというもの。 特にXAMPPでテスト環境を作るとき、ホームペー …

AS400/IBMi Laravel config設定のschemaについて

備忘録です。   Laravelのdatabase.phpにodbcの設定を入れるが、schemaって何なのか解らなかった。   今みたら設定はしていた。自社の主要なライブラリを指 …

このスクリーンセーバーには、より新しい種類のビデオカードまたはDirect3D・・・

職業柄パソコンをセッティングする機会が多いのだが、過去にある一台がスクリーンセーバーの設定のとき、 「このスクリーンセーバーには、より新しい種類のビデオカードまたはDirect3Dと互換性のあるビデオ …

【ExcelVBA】シフト文字を含めてバイト数をカウントする

これは私の備忘録です。   エクセルに入力したデータをAS400にアップロードする仕組みを作ったのですが、AS400はシフト文字の関係上、文字数の計算がややこしいです。   例えば …

AS400/IBMi ACS導入とわかったこと

2019年4月現在ACSは導入していないし、導入する予定もないけど、解ったことを備忘録として残しておきます。   ACSとは IBMiのパーソナルコミュニケーションズ(Pcomm)やクライア …

Adsense広告




文字で検索

人気記事

なぜだか人気記事

読んでほしい順に