#PHPとJavaScriptの違いまとめ(主要項目の対比表)
PHPとJacaScriptのメソッドなど主要項目の違いまとめ。
どっちがどっちかわからくなるの防止。
「←」はPHPの記述と同じ。
項目 | PHP | JavaScript |
---|---|---|
変数 *1 | $変数名 | var/let/const 変数名 |
関数 | function 関数名(){} | function 関数名(){}; |
アロー関数 *2 | fn()=>処理 | ()=>{}; |
引数 | $仮引数名 | 仮引数名 |
処理の終わり | ; | ← |
コメントアウト | // or /* */ | ← |
クラス定義 | class クラス名{} | ← |
コンストラクタ | アクセス権 function __construct(){} | constructor(){} |
インスタンス | new クラス名() | ← |
プロパティ | アクセス権 $プロパティ名 | const オブジェクト名 = {プロパティ名:値} |
プロパティの呼び出し | インスタンス->プロパティ名 | オブジェクト.プロパティ名 |
プロパティに関数をセット | なし | {プロパティ名:()=>{処理}}; |
メソッド | アクセス権 function メソッド名() | メソッド名(){} |
インスタンス自身(メソッドのみ) | $this | this |
自身のプロパティ呼び出し | $this->プロパティ名 | this.プロパティ名 |
メソッド呼び出し | インスタンス->メソッド名() | インスタンス.メソッド名() |
継承 | class クラス名 extends 親クラス名{} | ← |
クラスの使用許可 | 不要 | export default クラス名 |
クラス読込み | require_once('ファイル名.拡張子') | import クラス名 from "./ファイル名" |
コンストラクタのオーバーライド *3 | parent::__construct(); | super() |
出力 | echo/print | console.log() |
配列の要素数 | count(配列) | 配列.length |
配列 | array() | [] |
キーあり配列 | array(キー名=>値) | {キー名:値} |
キーあり配列の値取得 *4 | 配列[キー名] | 配列.キー名 |
キーあり配列呼び名 | 連想配列 | オブジェクト |
for文 | for($変数=初期値; 条件式; ステップ){} | ← |
配列からひとつずつ抜き出す | foreach($変数名 as 配列) | 配列.forEach((変数名)=> {処理}); |
if文 | if(条件式){} | ← |
else if | elseif (条件式){} | else if (条件式){} |
switch文 | switch(){case 条件: 処理; break;,,, default:} | ← |
変数展開 *5 | "${変数}" | `${変数}` |
and | &&/and | ← |
or | パイプ2本/or | ← |
等しい | == | ===/== |
異なる | != | !==/!= |
インクリメント演算子 | ++ | ← |
デクリメント演算子 | -- | ← |
整数型に変換 | intval() | perseInt()/Number() |
文字列型に変換*6 | strval() | String()/ .toString() / +'' |
小数点に型変換 | floatval() | parseFloat() |
3桁区切り | number_format() | 数値.toLocaleString() |
*1. let:再宣言NG、const:定数(再宣言・再代入NG)
*2. PHP:アロー関数は1行のみ。
JS:複数行OK。代入した変数が関数名になる(phpも)。
*3. JS:super()の引数は親クラスのコンストラクタの引数と合わせる
*4. JS:プロパティと呼ぶ
*5. PHP:シングルクオテーションだと文字列として出力
JS:バッククオート(shift+@)
*6. JS:空の文字列を足すと自動で文字列型に変換
JSはES6からクラスが使えるようになった。PHPと同じ処理で設定されている(クラスの生成、クラスの継承)。
PHPとJSは、PHPとPythonよりも似ている部分が多い。その分ちょっとした違いに注意が必要。(elseif と else ifとか)