親です。

アラサー既婚子持ち、今はカナダのモントリオールで生活してます。という日記です。

【PHP】PHPの基本的な記法まとめ

おつです、まとめる。

PHPの記法ざっくり

pythonJavaScriptと比較して間違えそうなところだけ押さえておく。

基礎の基礎

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}です";

配列

配列と連想配列pythonにおける辞書)がある。

配列

$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')

まあこんなもんだった。以上!!!