当前位置: 首页 > 后端技术 > PHP

PHPJavascript语法对比

时间:2023-03-30 00:08:31 PHP

PHP、JavaScript语法对比,速查全栈工程师来看,学的计算机语言多了,经常混淆不同语言的函数。作为一个全栈的PHPer,PHP和JavaScript的语法经常不清楚。百度,查说明书查网速。为什么不将这篇文章加入书签、打印出来并贴在一边以供快速参考。JavaScript的一些数组映射函数是jQuery实现的,在ES6之后,才有了官方的实现。PHP的数组和字符串相关函数的命名是随意的,这三个比较容易混淆。编码风格语言PHPJavaScript换行;No.换行符是必要的换行符\n,No.;不需要区分大小写只有变量名区分大小写变量名、函数名、类名等区分大小写严格模式declare(strict_types=1);(PHP7新特性)"usestrict";(ECMAScript5介绍)变量声明语言PHPJavaScriptconstantconstVAR_NAME=12;
定义('VAR_NAME',12);常量MY_FAV=7;(ES6引入标准)局部变量$varName=12;(严格来说,PHP只有函数作用域,或者说全局作用域)functionmyFunc(){
varvarName=3;
if(true){
letvarName2=2;
}
}
(函数作用域必须用var声明,否则可以全局访问变量。)
(let修饰的变量是Block-level作用域,ES6引入)
全局变量$varName=12;
函数myFunc(){
全局$varName;
}
(函数内部使用的全局变量变量必须用全局变量声明才能使用外部全局变量)varvarName1=3;
变量名2=2;
函数myFunc(){
varName3=6;
}(这里varName1,2,3都是全局变量)全局符号表$GLOBALS数组窗口对象定义变量nullundefined变量转换语言PHPJavaScript到bool,boolean$bar=(boolean)$foo;
$bar=(bool)$foo;
$bar=布尔值($foo);boolVal=Boolean('')到int$bar=(int)$foo;
$bar=(整数)$foo;
$bar=intval($foo);intVal=Number("314")
intVal=parseInt("3.14")tofloat$bar=(float)$foo;
$bar=(double)$foo;
$bar=(real)$foo;
$bar=floatval($foo);floatVal=Number("3.14")
flotaVal=parseFloat("12")到字符串$bar=(string)$foo;
$bar=strval($foo);str=String(123)
str=(123).toString()转换为数组$arr=(array)newstdClass();(需要完成多行函数)对象$obj=(object)array('1'=>'foo');让arr=['黄色','白色','黑色'];
letobj={...arr}时间戳到日期$date=newDateTime();
$date->setTimestamp(1171502725);变种日期=新日期(1398250549490);迄今为止的字符$dateObj=newDateTime($dateStr);varmyDateObj=newDate(Date.parse(datetimeStr))转换为空(未设置)$var;\不会删除变量或取消设置它的值只需返回NULL值并获取类型$varType=gettype($var);varType=typeofmyCar类判断$boolRe=$ainstanceofMyClass;boolRe=ainstanceofMyClass
newDate().constructor===DateOperator语言PHPJavaScript三元(三元)运算$a=$a?$a:1;//第一种类型
$a=$a?:1;//第二种PHP5.3支持re=isMember?2.0:'$10.00'合并运算符$a=$a??1;//PHP7支持数组语言PHPJavaScriptbasic$a=array(0=>1,1=>2,4,5,6);
$array=["foo"=>"bar","bar"=>"foo"];//PHP7语法b=[1,2,3]append$arr=array();
$arr[key1]=value1;
$arr[key2]=value2;varmycars=newArray()
mycars[0]="Saab"
mycars[1]="沃尔沃"
mycars[2]="BMW"newvarmycars=newArray("Saab","Volvo","BMW")循环语言PHPJavaScriptforloopfor($i=1;$i<=5;$i++)
{
echo$i;
}
for(vari=0;i{
document.write(cars[i]);
}foreach,forinloop$x=array("one","two","three");
foreach($xas$value)
{
echo$value;
}varperson={fname:"John",lname:"Doe",age:25};
for(xinperson)//x是属性名
{
txt=txt+person[x];
}while循环while($i<=5)
{
echo$i;
$i++;
}while(i<5)
{
x=x+"数是"+i+"";
i++;
}dowhileloopdo{
$i++;
echo$i;
}while($i<=5);做
{
document.write(i);
i++;

while(i<5);本文来自数组函数语言PHPJavaScript获取数组中的元素个数count($arr);arrayObject.length拼接两个字符串array_merge($arr1,$arr2);arr1.concat(arr2)删除数组元素unset($arr[$key]);deletearr1[key]array拼接成字符串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)sortsort($arr1);arrayObject.sort(sortByFunc=null)反转数组中元素的顺序array_reverse(&$arr,$keepKeys=true);arrayObject.reverse()每个函数functionmap_Spanish($n)
{
echo$n;
}
$b=array("uno","dos","tres","cuatro","cinco");
$c=array_map("show_Spanish",$a);$.each([52,97],function(index,value){
alert(索引+":"+值);
});
jQuery方式
constitems=['item1','item2','item3''];
items.forEach(function(item,index,arr){
console.log('key:'+index+'value:'+item);
});
(在ES6中引入)回调函数迭代地将数组缩减为单值函数sum($carry,$item){
$carry+=$item;
return$carry;
/>
$a=array(1,2,3,4,5);
var_dump(array_reduce($a,"sum"));//int(15)varnumbers=[65,44,12,4];
functiongetSum(total,num){
returntotal+num;
}
console.log(numbers.reduce(getSum));
从ECMAScript3开始,回调函数用于过滤数组中的元素functionodd($var){
//返回输入的整数是否为奇数
返回($var&1);

$array1=array("a"=>1,"b"=>2,"c"=>3,"d"=>4,"e"=>5);
echo"Odd:\n";
print_r(array_filter($array1,"odd"));functionisBigEnough(element){
/>返回元素>=10;
}
varfiltered=[12,5,8,130,44].filter(isBigEnough);\JavaScript1.6引入字符语言PHPJavaScript创建$str="astring";
\\\\SpecialYesPHP可以解析双引号字符中的变量
$str2='towstring';varcarname="VolvoXC60";
varcarname='VolvoXC60';
(同中Escape字符可以用双引号)多行词$bar=<<foo
bar
EOT;
vartmpl='
!!!5
html
包括标题
正文
包括脚本'字符连接$str1。$str2str1+str2字符串函数语言PHPJavaScript获取字符长度strlen($str);string.lengthgetsubstringsubstr(string$string,int$start[,int$length]):stringstring.substr(start,length)
str.slice(1,5);使用一个字符串拆分另一个字符串$pizza="piece1piece2piece3piece4piece5piece6";
$pieces=explode("",$pizza);
echo$pieces[0];//piece1varstr="你今天过得怎么样?";
varn=str.split("");
\输出:你今天过得怎么样?去除字符串首尾的空白字符(或其他字符)trim(string$str[,string$character_mask="tnr0x0B"]):string
(PHP函数更可定制)varstr="string";
警报(str.trim());找到字符串$mystring='abcsdfdsa'的第一次出现;
$pos=strpos($mystring,'cs');varstr="你好世界,我们lcometotheuniverse.";
varn=str.indexOf("welcome");将字符串转换为小写strtolower(string$string):stringstring.toLowerCase()将字符串转换为大写strtoupper(string$string):stringstring.toUpperCase()对象语言PHPJavaScript空对象$obj=newstdClass();varobj=newObject();//or
person={firstname:"John",lastname:"Doe",age:50,eyecolor:"blue"};对象属性$obj=newstdClass();
$obj->a=12;varmyCar=newObject();
myCar.year=1969;//js也可以是数组形式
myCar["year"]=1969;deletepropertyunset($obj->a);deleteobject.property
deleteobject['property']正则语言PHPJavaScript创建正则表达式$pattern="/.*/i";varre=/ab+c/;PCREregularintpreg_match(string$pattern,string$subject[,array&$matches[,int$flags=0[,int$offset=0]]])varmyRe=/d(b+)d/g;
varmyRe=newRegExp("d(b+)d","g");POSIX常规ereg(string$pattern,string$string[,array&$regs]):int(none)数学函数语言PHPJavaScript随机函数$re=mt_rand($最小值,$最大值);//返回一个介于最小值和最大值之间的随机整数Math.random()//返回一个介于0和1之间的随机数x的y次方pow(x,y)Math.pow(x,y)其他语言PHPJavaScript扩展,变量函数functionadd(...$numbers){
foreach($numbersas$n){
$sum+=$n;}}回声添加(1,2,3,4);//PHP5.6开始支持functionmyFunction(x,y,z){}varargs=[0,1,2];我的函数(...参数);(ES6开始支持)Deconstruct$my_array=array('a'=>'Dog','b'=>'Cat','c'=>'Horse');
列表($a,$b,$c)=$my_array;
//php5,如果是php7版本支持如下语法
['a'=>$a,'c'=>$c]=$my_array;vardate1=[1970,2,1];[年,口]=date1;vardate2={year:1980,mouth:3,day:21};({口}=date2);控制台日志(日期1);console.log(年);控制台。日志(嘴);欢迎收藏,如果您觉得需要补充,请留言