基本文法比較[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 |
文字列処理
\ | 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は使う予定がないため、PythonとPHPのみ
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