欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  web前端

一起看看 PHP Javascript 语法对照

程序员文章站 2022-03-07 15:55:43
...
一起看看 PHP Javascript 语法对照

相关免费学习推荐:javascript(视频)

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 语法对照的详细内容,更多请关注其它相关文章!