#author("2026-09-04T00:15:43+09:00","default:guide","guide") #author("2026-09-04T00:15:53+09:00","default:guide","guide") * Pkript/トランスパイラ/対応構文 [#q8ff9e15] トランスパイラが対応するJavaScript構文と、PHPへの変換規則一覧です。 #contents ** リファレンス [#da549452] *** 構文対応一覧 [#q00cd455] |~構文分類|~JavaScript記法|~PHP変換内容| |演算子|** , **=|べき乗演算子 (** , **=)| |論理演算|??|Null合体演算子 (??)| |論理代入|??= , &&= , ││=|対応する代入式へ展開| |ビット演算|& , | , ^ , ~ , << , >> , >>>|PHPのビット演算子へ変換| |ビット演算|& , │ , ^ , ~ , << , >> , >>>|PHPのビット演算子へ変換| |オプショナル連鎖|a?.b , a?.[i] , a?.()|nullチェックを含む三項演算または中間評価へ展開| |スプレッド構文|[...a] , {...a} , f(...a)|array_merge / unpack 構文へ展開| |テンプレートリテラル|`Hello ${name}`|文字列連結 ( . ) へ変換| |分割代入|let [a, b] = arr;<br>let {x, y} = obj;|リスト代入または個別プロパティ代入へ展開| |関数引数|デフォルト引数 (a = 1)<br>残余引数 (...rest)|PHPのデフォルト引数・可変長引数へ変換| |アロー関数|(x) => x * 2|function($x) use (...) { return $x * 2; } クロージャへ変換| |オブジェクト|{ x, [key]: val }|連想配列構文へ展開| |例外処理|try { ... } catch (e) { ... } finally { ... }|PHPの try-catch-finally 構文へ変換| |正規表現|/pattern/flags|preg_match 等に対応するPCREパターン文字列へ変換| *** 制御構文のラベル [#fa67233c] JavaScriptのラベル付き break / continue は、PHPの多重ループ脱出仕様に合わせて階層数指定(break 2; 等)へ変換されます。 ** 型の挙動 [#q91c8703] *** 真偽値判定 (Truthy / Falsy) [#y8cc4fd4] JavaScriptの真偽値ルール(空配列 [] や空オブジェクト {} は true、0 や 空文字 "" は false)に準拠した判定コードを生成します。 *** 文字列と数値の加算 [#d8932f9d] + 演算子は、両オペランドの型に応じて文字列結合( . )または数値加算( + )として適切に評価されます。 ---- [[Pkript/トランスパイラ]] | [[Pkript]]