共计 5724 个字符,预计需要花费 15 分钟才能阅读完成。
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 |
---|---|---|
根本 | $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; <br/>}<br/>} <br/>echo add(1, 2, 3, 4); // PHP5.6 开始反对 | function myFunction(x, y, z) {} <br/> var args = [0, 1, 2]; <br/> 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];<br/>[year, mouth]= date1;<br/>var date2 = {year: 1980, mouth: 3, day: 21};<br/>({mouth} = date2);<br/>console.log(date1);<br/>console.log(year);<br/>console.log(mouth); |
欢送大家搜藏,如果你感觉须要补充的中央,请留言。
正文完