s平面の左側

左側なので安定してます(制御工学の話は出てきません)

Python-PHP 辞書

(学生時代 Python を書いていた)私が PHP の会社に新卒入社してすぐの頃(4 年前!)のメモがでてきたのでブログに上げてみる。


Pythonista な私が PHP で戦うための辞書。

「Python でこう書くやつ、PHP だとどうなるの?」ってやつを積み重ねていこうと思います。

将来もし、Pythonista な人が来た時の参考にもなれば。

Python PHP 備考
x $x 変数
instance.attribute $instance->attribute メソッド・フィールドへのアクセス
str.split(delim) explode($delim, $str) Python では文字列メソッドだが、PHP では関数
for item in items: foreach ($items as $item) {}
str.replace(old, new) str_replace($old, $new, $str)
lambda x: x function ($x) {return $x;} Python の lambda は式である。PHP で外の変数を使うには function ($x) use ($y) {return $x + $y;} のように書く
map(function, items) array_map('function', $items)
len(items) count($items)
str1 + str2 $str1 . $str2 文字列の連結
[1, 2, 3] array(1, 2, 3) または
[1, 2, 3]
PHP の後者の記法はバージョン 5.4 以降
{key: value} array($key => $value) または
[$key => $value]
PHP の後者の記法はバージョン 5.4 以降から。Python では辞書型、PHP では(連想)配列。
for char in str: foreach (str_split($str) as $char) {} 文字列を1文字ずつ
[f(item) for item in items if g(item)] array_map('f', array_filter($items, 'g')) リスト内包表記。f(item)の部分は式であれば良いので、関数である必要はないのがポイント。PHP は「敢えて 1 行で書くなら」って感じなので実際には分けて書くべし。
str.strip() trim($str)
str[from:to] substr($str, $from, $to - $from)
mb_substr($str, $from, $to - $from)

Python のスライスは開始位置と終了位置を指定。開始位置が文字列の長さより大きい場合、IndexError が送出される。終了位置が文字列の長さより大きい場合、文字列の最後までが取得される

PHP の substr は開始位置と長さを指定。開始位置が文字列の長さより大きい場合、false を返す。長さを指定して、元の文字列の長さを超過した場合、文字列の最後までが取得される。