二者在語法上相似,樓上說的對,js=javascript是工做在瀏覽器端的腳本語言,他所提交的數據是交給瀏覽器來處理的。可是如今的Ajax技術已經能夠把js提交的數據交付到瀏覽器來處理。
php,是工做在服務器端的腳本,把數據提交給服務器去處理,服務器再響應到瀏覽器,這個你要看下BS結構。若是學習建議:不少人先學的js,道理是沒錯,可是若是先學PHP的話,js就是帶着需求來學習的,學的會更加有針對性。
javascript
嵌入頁面方式php
JS嵌入方式:<script></script>java
PHP嵌入方式:<?phpnode
?>(經常使用)react
輸出語法數組
Javascript輸出瀏覽器
1.alert("警告的內容")服務器
2.prompt("提示的內容")架構
3.document.write()(頁面輸出內容)運維
PHP輸出
1.echo(經常使用)//可同時輸出多個字符串 eg:echo $a,"hello";
2.print //只能輸出一個字符串 eg:print $a;
3.print_r();//能夠打印數組
4.var_dump();//可輸出變量的內容、類型和長度
數據類型
JS數據類型
整型(整數)int
單精度小數 float
雙精度小數 double
小數 decimal
布爾型 bool(只能存兩個狀態)
日期時間類型 datetime
字符 char(不經常使用)強
字符串 string(不經常使用)強
PHP數據類型
bool 布爾型(存儲兩種狀態)
int 整型
float(double) 浮點型
char 字符
string 字符串
定義變量
JS定義變量:var a = 10;
(注意:1.若是定義整數或小數的變量,等號後面的值直接寫
2.若是定義字符串變量,等號後面的值須要加雙引號或單引號)
PHP定義變量: $a = 5; $a = "hello"; $a = <<<A 定義的字符串內容 //也可放HTML代碼 A;
(注意:1.若是定義整數或小數的變量,等號後面的值直接寫
2.若是定義字符串變量,等號後面的值須要加雙引號或單引號)
字符串拼接
JS中字符串拼接:"+"; eg:"hello"+"world"
PHP中字符串拼接:"."; eg:"hello"."world"
PHP特有的變量特徵
// 轉義字符:通常用在字符串裏面,用來輸出特殊的內容
// \" 輸出雙引號 \t 製表符 \n 換行
eg:$s = "wo\"rld"; //轉義加引號 $s = "wo\trld"; //轉義製表 $s = "wo\nrld"; //轉義換行
$a = "你好";
//解析變量
$b = "hello{$a}"; //輸出hello,你好
類型轉換
JS中類型轉換
1.轉化爲整數:parseInt();
2. 轉化爲小數:parseFloat();
3.判斷是否爲合法數字類型:isNaN();
PHP中類型轉換
1.$a = (Int)$a; //強制轉化變量a爲整數
2.$b = settype($b,"string"); //強制轉化變量a爲字符串
PHP中關於變量的經常使用函數
$s = 5;
1.var_dump(empty($s)); //empty($s)判斷變量s是否爲空,能夠爲0,能夠爲空字符串,也能夠是未定義
2.unset($s); //刪除變量s
3.var_dump(isset($s)); //isset($s)判斷變量s是否認義
PHP中的特殊用法
1.變量取地址
$a = "hello";
$b = &$a; //&表明取變量的地址
echo($b); //輸出結果爲hello
2.可變變量
$s = "hi";
$hi = "你好";
echo $$s; //輸出的是 你好
適合的工具作適合的事。
用上牛逼的工具不等於人就變得牛逼了。
什麼領域都有天花板。
瀏覽器是JS的主場,但服務器不是JS的主場.服務器不像瀏覽器只能跑JS. JS在服務器的運行環境(Node)跟瀏覽器差異很大. 在服務器Node應用是以一個獨立的守護進程運行, 代碼稍有不慎就可能致使進程崩潰退出, 並且修改代碼須要重啓Node進程才能生效(那些自動化工具nodemon/pm2本質也是重啓服務). 服務器的PHP跟瀏覽器反而更像,都是提供一個比較穩定的容器來執行腳本. 因此一個PHP虛擬主機環境能夠穩定運行多個PHP站點.你很難寫出讓PHP容器(如PHP-FPM和Apache)發生崩潰的PHP代碼. 瀏覽器也會盡可能避免由於網站JS的問題致使的崩潰. 好比瀏覽器Chrome/Firefox跟PHP-FPM用的都是多進程架構. 子進程崩潰並不會影響主進程,主進程能夠從新啓動一個子進程提供服務.
看看已經逝去的ASP,連Java開發者都不愛的JSP,寂寥落寞的RoR,以及一直自嗨的Python Web,你就會知道,如今動不動鼓吹全棧的Node早晚也是這其中的一員.
Google不喜歡JS,想推本身的Dart,但沒成功.Microsoft不喜歡JS,想推本身的TypeScript.Facebook也不太滿意JS,因此React搞了本身的JSX.可見在瀏覽器端JS也不是誰都滿意,更別說好事者把V8移植到服務器的Node方案了.
要說哪一個語言曾經嚴重威脅過PHP的市場,我會說那個語言是ASP,不過還好,微軟爲了對付JavaEE,放棄了ASP,搞了類Java Web的ASP.NET,加上ASP沒法跨平臺且不開源,天然也就在與PHP的競爭中落敗.
唱衰PHP的聲音一直都有,但草根英雄PHP歷來都用質樸的實力來教對手作人.由於PHP貫徹的是實用主義和羣衆路線思想, 因此沒有豪門支持的PHP照樣能在互聯網上雄霸一方.
PHP的成功在於堅決不移地走羣衆路線. 量變(用戶量/代碼量)引發質變. 用戶量體如今互聯網上有超過82%的網站使用PHP驅動.代碼量體如今PHP自帶的各類功能擴展以及使用PHP開發的各類博客/論壇/商城系統.
只有比PHP更PHP的語言纔有可能取代PHP. "更"體如今比PHP更簡單,更實用,更高效,學習/開發/運維成本更低. 我很樂於見到這麼一門語言出來,但很顯然,如今尚未.
補充:
誰說有V8 JIT支持的Node性能就必定比PHP強?生成一個包含100萬個元素的關聯數組, PHP7耗時0.9秒,而Node耗時1.5秒,環境是Ubuntu 14.04,處理器是i5-3230M,有圖有真相.連Facebook的HHVM都不能幹翻PHP7,你就知道鳥哥到底有多強.
由於我用的是PHP 7.0.0版原本測試,因此PHP顯示出來的性能優點沒有孫子平這位網友使用PHP 7.1.4來的明顯.在孫子平這位網友的測試中,PHP7耗時僅爲Node.JS7的1/3. https://pic2.zhimg.com/v2-668a4ac0dfe2216230ac4da903adc155_b.png
附上跟Java7的對比,沒想到Java還沒Node快,怎麼跟PHP比?