ひさふぃの日記

DjangoとPythonとLaravelが好き。大阪でフリーランスエンジニアやってます。

基本文法比較[Python javascript PHP]

今までPythonメインで触ってきたけど、仕事でjQuery(javascript)とPHPを触るようになって勉強していると混乱してきた
よく使いそうなものや迷いそうなものを一覧にしてまとめておく
気づいた時点で追記予定

変数・定数・bool

\ Python JS PHP
変数宣言 name = "" var name = ""; $name = "";
定数 NAME = "" const name = ""; difine("NAME, "");
bool True
False
true
false
true
false
  • 変数宣言
    $をつけるPHP好き
  • 定数
    Pythonは定数が存在しないため、大文字のみ変数を定数として扱うという紳士協定が結ばれている
  • bool
    Pythonだけ大文字

文字列処理

\ Python JS PHP
結合 str + str str + str str . str
文字列内の
変数展開
"{}".format(var) "{$var}"
古いブラウザ非対応
"{$var}"
' 'は不可

使う変数の集まるPythonが好き

文字列と数値のキャスト

\ Python JS PHP
to int int(var) Number(var)
ParseInt(var)
(int) $var
to str str(var) String(var) (string) $var
  • Pythonではキャストしないとstrとintの結合はできない
  • PHPはintとstrの場合で結合演算子が異なるため、そこから出力する型を判断する
  • JSは型付けがダックタイピングなので、自動でintをstrへキャストしてくれる

Pythonでは数値を文字列出力する時によくキャストを使っていたが、JSとPHPでは不要かもしれない
JSは +var とか ""+var も使えるらしい。面白い

条件式

\ Python JS PHP
elseif elif else if elseif
  • JSはelseifがなく、直前のelseのあとにifをつなげるため空白をつける

配列のループ

若干違う
慣れてるからかもしれないけどPythonが好きだな

Python

for value in list:
    文

for key, value in dict:
    文

JS

for (var value of array) {}

for (var key in array) {}

PHP

foreach ($array as $value) {
    文
}

foreach ($array as $key => $value) {
    文
}

配列への追加

Pythonだと内包表記やpandasを使うのでほぼ使わないなぁ
JSは使う予定がないため、PythonPHPのみ
PHP連想配列を配列として使うのが面白いよなぁ

Python

// list2を展開して追加
list1 += list2

// list2を配列のまま追加
list1.append(list2)

// dict2を展開して追加
dict1.update(dict2)

PHP

// $array2を展開、$array2のキーを優先して上書き追加
$array1 += $array2

// $array2を展開、数値キーが被ったら$arrya2のキーを再取得して追加
array_merge($array1, $array2)

// array2を配列のまま追加、キー入力もできる
$array1[] = $array2