【PHP】PHPの基本的な記法まとめ
おつです、まとめる。
PHPの記法ざっくり
pythonやJavaScriptと比較して間違えそうなところだけ押さえておく。
基礎の基礎
PHPはHTMLの埋め込み言語だ。
例えば次の二つはブラウザを通スト同じように表示される。
①HTMLだけで書いたとき
<div> <p>私の名前は山田です</p> </div>
②PHPで書いたとき
<div> <p> <? php $name = '山田'; echo "私の名前は{$name}です" ?> </p> </div>
こんな感じにHTMLの中にPHPが埋め込まれたファイル全体をPHPファイルとしている。
・流れ
<?php // PHPの記述 ?>
俺はこの<?php ?>
を間違えて<? php ?>
としてしまいがちなので気をつける。
以下では<?php ?>
のところをいちいち書くのが鬼面倒臭いので、省いて書くぞ。
変数宣言
これはpythonと同じで型指定なし。変数名の頭に$をつけて書けばそれで終わり。
$firstName = 'john';
変数名とかメソッド名はキャメルケース(英単語の開始文字が大文字)でやってる。
文末
;(セミコロン)を使用する。JavaScriptみたいな。
$firstName = 'john';
文字列の処理
これがかなり曲者だ。
① .(ドット)でつなげる。マジかよ。
$firstName = 'john'; $middleName = 'masters'; $lastName = 'organics'; echo $firstName.$middleName.$lastName;
johnmastersorganics
② .=
$a = 'aaa'; $b = 'bbb'; $a .= $b echo $a
これで結果が'aaabbb'になる。 数値の加算の時のノリで.(ドット)=(イコール)ってのを使ってるんだけど、クッソエラー見つけにくそう。
③文字列に変数を埋め込む"{}"
""(ダブルクォート)で囲った時、{$変数名}で変数を埋め込める。 反対に''だと埋め込めない。{}も文字列として処理する。
$name = 'jon'; echo "私の名前は{$name}です";
配列
配列
$name = array('一郎', '二郎'); $name[] = '三郎'; echo $name[2];
三郎
って感じ。
$name = array('魚' => 'さんま', '肉' => '牛肉' );
連想配列はちょっと難しい、慣れるまでは。
分岐
ifとswitchがある。
if
if(a > 100){ echo 'aaa'; }elseif(a > 50){ echo 'bbb'; }else{ echo 'ccc';
こんなん。elifではなくelseifなのが気をつけたいポイント。
switch
switch($name){ case 1: echo $name; break; case 2: echo $name; break; case 3: echo $name; break; }
反復
for, while, foreach文がある。
for
for($I = 1; $I <= 100; $I++){ if($I % 3 == 0){ continue; } echo $I; }
while
$I = 1; while($I =< 100){ echo $I; $I++; }
foreach これは配列・連想配列の繰り返し。 配列の繰り返し。
$name = array('一郎', '二郎'); foreach($name as $value){ echo $value; }
連想配列の繰り返し。"$key =>"は省略可能。
$name = array('魚' => 'さんま', '肉' => '牛肉' ); foreach($name as $key => $value){ echo $key.':'.$value; }
関数の宣言
このノリは大体Pythonと同じ。
function 関数名(引数名){ 処理; }
クラス
class Menu{ public $name; public function hello(){ echo "私の名前は{$this->name}です" } public function __construct($name){ // __constructメソッドはインスタンスの作成時に呼ばれる。 //Pythonの__init__みたいなもん $this->name = $name; } }
クラス変数にはpublicとprivateの設定がある。
privateにするとクラスの外からいじることができなくなる。(値の更新とかができなくなる)
Pythonにはこの区別がなくて、ただ変数めいの前に_(アンダーバー)をつけるとかしてこの変数は変更しないでください、と書き手に伝えるなどしていたはず。
また、$thisはこのクラスメソッドを呼び出したインスタンスを指す。
$menu1 = new Menu('CURRY')
まあこんなもんだった。以上!!!