您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關PHP和Javascript語法對照示例的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
PHP、JavaScript 語法對照、速查
全棧工程師看過來,學的計算機語言多了,往往會把不同語言的各個函數搞混。作為一個全棧PHPer,往往PHP、JavaScript 語法傻傻分不清楚,百度一下,查手冊要網速。不如收藏下這篇文章,打印出來,貼到一旁快速查閱。
JavaScript 的一些數組map函數有jQuery實現,ES6后,又出了官方實現。PHP 的數組、字符串相關函數的命名隨性,這仨一塊就更容易混淆了。
編碼風格
語言 | PHP | JavaScript |
---|---|---|
換行 | ; 號 換行符號是必須的 | 換行 \n ,以及 ; 號都不是必須的 |
大小寫敏感度 | 只有變量名區分大小寫 | 變量名、函數名、類名等 都區分大小寫 |
嚴格模式 | declare(strict_types=1); (PHP7新特性) | "use strict";(ECMAScript 5 引入) |
變量聲明
語言 | PHP | JavaScript |
---|---|---|
常量 | const VAR_NAME = 12; <br/> define('VAR_NAME', 12); | const MY_FAV = 7; (ES6引入的標準) |
局部變量 | $varName = 12; (PHP嚴格的來講,只有函數作用域,或者全局作用域) | function myFunc() { <br/> var varName = 3; <br/> if (true) {<br/> let varName2 = 2;<br/>}<br/>}<br/> (函數作用域內必須用var聲明,否則變量全局可訪問.)<br/>(let修飾的變量就是塊級別作用域,ES6引入) <br/> |
全局變量 | $varName = 12; <br/> function myFunc() {<br/> global $varName; <br/> } <br/> (函數內使用全局變量,必須要用global變量聲明使用外部的全局變量) | var varName1 = 3; <br/> varName2 = 2; <br/> function myFunc() {<br/> varName3 = 6; <br/> } (這里寫法varName1,2,3都是全局變量) |
全局符號表 | $GLOBALS 數組 | window 對象 |
為定義變量 | null | undefined |
變量轉換
語言 | PHP | JavaScript |
---|---|---|
轉bool,boolean | $bar = (boolean) $foo; <br/> $bar = (bool) $foo; <br/> $bar = boolval($foo); | boolVal = Boolean('') |
轉 int | $bar = (int) $foo; <br/> $bar = (integer) $foo; <br/> $bar = intval($foo); | intVal = Number("314") <br/> intVal = parseInt("3.14") |
轉 float | $bar = (float) $foo;<br/>$bar = (double) $foo;<br/>$bar = (real) $foo;<br/>$bar = floatval($foo); | floatVal = Number("3.14") <br/> flotaVal = parseFloat("12") |
轉換為 string | $bar = (string) $foo; <br/> $bar = strval($foo); | str = String(123) <br/> str = (123).toString() |
轉換為 array | $arr = (array) new stdClass(); | (需要多行函數完成) |
轉換為 對象 | $obj = (object) array('1' => 'foo'); | let arr = ['yellow', 'white', 'black']; <br/> let obj = {...arr} |
時間戳轉日期 | $date = new DateTime(); <br/> $date->setTimestamp(1171502725); | var date = new Date(1398250549490); |
字符轉日期 | $dateObj = new DateTime($dateStr); | var myDateObj = new Date(Date.parse(datetimeStr)) |
轉換為 空 | (unset) $var; \ 不會刪除該變量或 unset 其值。僅是返回 NULL 值而已 | |
獲取類型 | $varType = gettype($var); | varType = typeof myCar |
類判斷 | $boolRe = $a instanceof MyClass; | boolRe = a instanceof MyClass <br/> new Date().constructor === Date |
運算符
語言 | PHP | JavaScript |
---|---|---|
三目(三元)運算 | $a = $a ? $a : 1;//第一種 <br/> $a = $a ? : 1;//第二種 PHP5.3支持 | re = isMember ? 2.0 : '$10.00' |
合并運算符 | $a = $a ?? 1; // PHP7支持 |
數組
語言 | PHP | JavaScript |
---|---|---|
基本 | $a=array(0 => 1, 1 => 2,4,5,6); <br/> $array = [ "foo" => "bar", "bar" => "foo"]; // PHP 7語法 | b = [1,2,3] |
追加 | $arr = array(); <br/> $arr[key1] = value1; <br/> $arr[key2] = value2; | var mycars=new Array()<br/>mycars[0]="Saab"<br/>mycars[1]="Volvo"<br/>mycars[2]="BMW" |
new | var mycars = new Array("Saab","Volvo","BMW") |
循環
語言 | PHP | JavaScript |
---|---|---|
for 循環 | for ($i=1; $i<=5; $i++) <br/> {<br/> echo $i ; <br/> } <br/> | for (var i=0; i < cars.length ; i++) <br/> { <br/>document.write(cars[i]); <br/>} |
foreach ,for in 循環 | $x=array("one","two","three"); <br/> foreach ($x as $value) <br/> { <br/> echo $value; <br/>} | var person= {fname:"John",lname:"Doe",age:25}; <br/> for (x in person) // x 為屬性名 <br/> { <br/>txt=txt + person[x]; <br/> } |
while 循環 | while($i <= 5) <br/> { <br/> echo $i ; <br/>$i++; <br/> } | while (i<5)<br/>{<br/>x=x + "The number is " + i + " ";<br/> i++;<br/>} |
do while 循環 | do {<br/> $i++;<br/> echo $i;<br/>} while ($i<=5); | do<br/>{<br/> document.write(i);<br/> i++;<br/>}<br/>while (i<5); |
本文來自
數組函數
語言 | PHP | JavaScript |
---|---|---|
獲取數組中元素的數目 | count($arr); | arrayObject.length |
拼接兩個字符串 | array_merge($arr1, $arr2); | arr1.concat(arr2) |
刪除數組元素 | unset($arr[$key]); | delete arr1[key] |
將數組拼接成字符串 | implode(',', $arr1); | arr.join(‘,’) |
刪除并返回數組最后元素 | $re = array_pop($arr1); | re = arrayObject.pop() |
向數組的末尾添加一個元素 | array_push($arr1, $var1); | len = arrayObject.push(newele1) |
將數組的第一個元素刪除并返回 | $re = array_shift($arr1); | re = arrayObject.shift() |
向數組的開頭添加一個或更多元素 | array_unshift($arr1, $var1); | len = arrayObject.unshift(newele1) |
從已有的數組中返回選定的元素 | $newArr = array_splice($arr1,$start,$len); | newArr = arrayObject.slice(start,end) |
排序 | sort($arr1); | arrayObject.sort(sortByFunc = null) |
顛倒數組中元素的順序 | array_reverse(&$arr, $keepKeys = true); | arrayObject.reverse() |
each 函數 | function map_Spanish($n)<br/>{<br/> echo $n;<br/>}<br/>$b = array("uno", "dos", "tres", "cuatro", "cinco");<br/>$c = array_map("show_Spanish", $a); | $.each([ 52, 97 ], function( index, value ) {<br/>alert( index + ": " + value );<br/>}); <br/> jQuery 方式 <br/> const items = ['item1', 'item2', 'item3']; <br/> items.forEach(function(item, index, arr){<br/> console.log('key:' + index + ' value:' + item);<br/>}); <br/> (ES6引入) |
回調函數迭代地將數組簡化為單一的值 | function sum($carry, $item) {<br/> $carry += $item;<br/> return $carry;<br/>}<br/>$a = array(1, 2, 3, 4, 5);<br/>var_dump(array_reduce($a, "sum")); // int(15) | var numbers = [65, 44, 12, 4];<br/>function getSum(total, num) {<br/> return total + num;<br/>}<br/>console.log(numbers.reduce(getSum));<br/> 始于ECMAScript 3 |
用回調函數過濾數組中的單元 | function odd($var) {<br/> // returns whether the input integer is odd<br/> return($var & 1);<br/>}<br/>$array1 = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);<br/>echo "Odd :\n";<br/>print_r(array_filter($array1, "odd")); | function isBigEnough(element) {<br/> return element >= 10;<br/>}<br/>var filtered = [12, 5, 8, 130, 44].filter(isBigEnough); \ JavaScript 1.6 引入 |
字符
語言 | PHP | JavaScript |
---|---|---|
創建 | $str = "a string"; <br/> \\\\比較特殊的是PHP在雙引號字符中可以解析變量 <br/> $str2 = 'tow string'; | var carname = "Volvo XC60"; <br/> var carname = 'Volvo XC60';<br/> (同樣的在雙引號中可以使用轉義字符) |
多行字符 | $bar = <<<EOT<br/> foo<br/>bar<br/>EOT;<br/> | var tmpl ='<br/> !!! 5<br/> html<br/> include header<br/> body<br/> include script' |
字符拼接 | $str1 . $str2 | str1 + str2 |
字符串函數
語言 | PHP | JavaScript |
---|---|---|
獲取字符長度 | strlen($str); | string.length |
獲取子字符串 | substr ( string $string , int $start [, int $length ] ) : string | string.substr(start,length) <br/> str.slice(1,5); |
使用一個字符串分割另一個字符串 | $pizza = "piece1 piece2 piece3 piece4 piece5 piece6";<br/>$pieces = explode(" ", $pizza);<br/>echo $pieces[0]; // piece1 | var str="How are you doing today?"; <br/> var n=str.split(" "); <br/>\ output:How,are,you,doing,today? |
去除字符串首尾處的空白字符(或者其他字符) | trim ( string $str [, string $character_mask = " tnr0x0B" ] ) : string <br/> (PHP 函數的可定制要強一點) | var str = " string "; <br/> alert(str.trim()); |
查找字符串首次出現的位置 | $mystring = 'abcsdfdsa'; <br/> $pos = strpos($mystring, 'cs'); | var str="Hello world, welcome to the universe.";<br/>var n=str.indexOf("welcome"); |
把字符串轉換為小寫 | strtolower ( string $string ) : string | string.toLowerCase() |
把字符串轉換為大寫 | strtoupper ( string $string ) : string | string.toUpperCase() |
對象
語言 | PHP | JavaScript |
---|---|---|
空對象 | $obj = new stdClass(); | var obj = new Object(); // 或者 <br/> person={firstname:"John",lastname:"Doe",age:50,eyecolor:"blue"}; |
對象屬性 | $obj = new stdClass(); <br/> $obj->a = 12; | var myCar = new Object(); <br/> myCar.year = 1969; // js還可以以數組形式 <br/> myCar["year"] = 1969; |
刪除屬性 | unset($obj->a); | delete object.property <br/> delete object['property'] |
正則
語言 | PHP | JavaScript |
---|---|---|
創建正則表達式 | $pattern = "/.*/i"; | var re = /ab+c/; |
PCRE 正則 | int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] ) | var myRe = /d(b+)d/g; <br/> var myRe = new RegExp("d(b+)d", "g"); |
POSIX 正則 | ereg ( string $pattern , string $string [, array &$regs ] ) : int | (無) |
數學函數
語言 | PHP | JavaScript |
---|---|---|
隨機函數 | $re = mt_rand($min, $max); // 返回 min~max 之間的隨機整數 | Math.random() // 返回 0 ~ 1 之間的隨機數 |
x的y次方 | pow(x,y) | Math.pow(x,y) |
其他
語言 | PHP | JavaScript |
---|---|---|
展開,可變函數 | function add(...$numbers) { <br> foreach ($numbers as $n) { <br> $sum += $n; } } echo add(1, 2, 3, 4); // PHP5.6 開始支持 | function myFunction(x, y, z) { } var args = [0, 1, 2]; myFunction(...args); (ES6開始支持) |
解構 | $my_array = array('a'=>'Dog','b'=>'Cat','c'=>'Horse'); <br> list($a, $b, $c) = $my_array; <br>// php5, 如果是php7版本支持以下語法 <br> ['a'=>$a, 'c'=>$c] = $my_array; | var date1 = [1970, 2, 1]; [ year, mouth ]= date1; var date2 = {year: 1980, mouth: 3, day: 21}; ({ mouth } = date2); console.log(date1); console.log(year); console.log(mouth); |
感謝各位的閱讀!關于“PHP和Javascript語法對照示例”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。