# PHP 與 JavaScript 的異同 ## 相同 > 相同指的是在寫法上僅僅只是改變符號,而底層觀念相同的部分 ### 宣告變數 ```javascript= var a = 1; ``` ```php= <?php $a = 1; // php ?> ``` ### 字串串接 #### 皆為字串 ```javascript= 'This is ' + 'an apple.'; ``` ```php= <?php 'This is ' . 'an apple.'; ?> ``` #### 字串與變數 ```javascript= var item = 'an apple'; 'This is ' + item; // 加號運算子 `This is ${item}` // ES6 樣板字串 ``` ```php= <?php $item = 'an apple'; "This is " . $item; // 與加號運算子相同 "This is $item"; // 與 ES6 樣板字串相同 'THis is $item'; // 此處的 $item 會被當成字串而非變數輸出 ?> ``` ## 相異 > 相異指的是觀念上的根本不同,如果用 JavaScript 的觀念理解可能會造成混淆的部分 ### 變數範疇 ```javascript= // JS 中的函式如果無法在區塊中取得變數,會試圖往全域尋找同名變數 var a = 'Hello'; function test() { return a; // a = 'Hello' } ``` ```php= <?php // php 預設的變數範疇為函式,且不會主動往全域尋找同名變數 $a = 'Hello'; function test() { return $a; // Notice: Undefined variable: a } ?> ``` ###### tags: `PHP` `Dahis`