溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

PHP與Javascript語(yǔ)法對(duì)照、速查的詳細(xì)分析

發(fā)布時(shí)間:2020-08-27 10:00:18 來(lái)源:億速云 閱讀:146 作者:小新 欄目:編程語(yǔ)言

這篇文章將為大家詳細(xì)講解有關(guān)PHP與Javascript語(yǔ)法對(duì)照、速查的詳細(xì)分析,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

                                                       

PHP、JavaScript 語(yǔ)法對(duì)照、速查

全棧工程師看過來(lái),學(xué)的計(jì)算機(jī)語(yǔ)言多了,往往會(huì)把不同語(yǔ)言的各個(gè)函數(shù)搞混。作為一個(gè)全棧PHPer,往往PHP、JavaScript 語(yǔ)法傻傻分不清楚,

JavaScript 的一些數(shù)組map函數(shù)有jQuery實(shí)現(xiàn),ES6后,又出了官方實(shí)現(xiàn)。PHP 的數(shù)組、字符串相關(guān)函數(shù)的命名隨性,這仨一塊就更容易混淆了。

編碼風(fēng)格

語(yǔ)言PHPJavaScript
換行; 號(hào)是必須的,\n不是必須的換行 \n,以及 ; 號(hào)都不是必須的,for(;;)除外
大小寫敏感度只有變量名區(qū)分大小寫變量名、函數(shù)名、類名等 都區(qū)分大小寫
嚴(yán)格模式declare(strict_types=1); (PHP7新特性)“use strict”;(ECMAScript 5 引入)

變量聲明

語(yǔ)言PHPJavaScript
常量const VAR_NAME = 12;
define(‘VAR_NAME’, 12);
const MY_FAV = 7; (ES6引入的標(biāo)準(zhǔn))
局部變量$varName = 12; (PHP只有函數(shù)作用域,和全局作用域之分)function myFunc() {
   var varName = 3;
if (true) {
let varName2 = 2;
}
}
(函數(shù)作用域內(nèi)必須用var聲明,否則變量全局可訪問.)
(let修飾的變量就是塊級(jí)別作用域,ES6引入)
全局變量$varName = 12;
function myFunc() {
global $varName;
}
(函數(shù)內(nèi)使用全局變量,必須要用global變量聲明使用外部的全局變量)
var varName1 = 3;
varName2 = 2;
function myFunc() {
varName3 = 6;
} (這里寫法varName1,2,3都是全局變量)
全局符號(hào)表$GLOBALS  數(shù)組window 對(duì)象(html環(huán)境中)
global 對(duì)象(nodejs環(huán)境)
為定義變量nullundefined

變量轉(zhuǎn)換

語(yǔ)言PHPJavaScript
轉(zhuǎn)bool,boolean$bar = (boolean) $foo;  
 $bar = (bool) $foo;
 $bar =  boolval($foo);
boolVal = Boolean(‘’)
轉(zhuǎn) int$bar = (int) $foo;
$bar = (integer) $foo;
$bar = intval($foo);
intVal = Number(“314”)
intVal = parseInt(“3.14”)
轉(zhuǎn) float$bar = (float) $foo;
$bar = (double) $foo;
$bar = (real) $foo;
$bar = floatval($foo);
floatVal = Number(“3.14”)
flotaVal = parseFloat(“12”)
轉(zhuǎn)換為 string$bar = (string) $foo;
$bar = strval($foo);
str = String(123)
str = (123).toString()
轉(zhuǎn)換為 array$arr = (array) new stdClass();(需要多行函數(shù)完成)
轉(zhuǎn)換為 對(duì)象$obj = (object) array(‘1’ => ‘foo’);let arr = [‘yellow’, ‘white’, ‘black’];
let obj = {…arr}
時(shí)間戳轉(zhuǎn)日期$date = new DateTime();
$date->setTimestamp(1171502725);
var date = new Date(1398250549490);
字符轉(zhuǎn)日期$dateObj = new DateTime($dateStr);var myDateObj = new Date(Date.parse(datetimeStr))
轉(zhuǎn)換為 空(unset) $var; \ 不會(huì)刪除該變量或 unset 其值。僅是返回 NULL 值而已
獲取類型$varType =  gettype($var);varType = typeof myCar
類判斷$boolRe = $a instanceof MyClass;boolRe = a instanceof MyClass
new Date().constructor === Date

魔法變量

語(yǔ)言PHPJavaScript
當(dāng)前文件$filePath = __FILE__;filePath = __filename
當(dāng)前目錄$currentDir = __DIR__;curDir = __dirname
當(dāng)前代碼行__LINE__
當(dāng)前函數(shù)__FUNCTION__
當(dāng)前類__CLASS__
當(dāng)前命名空間__NAMESPACE__

運(yùn)算符

語(yǔ)言PHPJavaScript
三目(三元)運(yùn)算$a = $a ? $a : 1;//第一種
$a = $a ? : 1;//第二種 PHP5.3支持
re = isMember  ? 2.0 : ‘$10.00’
合并運(yùn)算符$a = $a ?? 1; //  PHP7支持

數(shù)組

語(yǔ)言PHPJavaScript
基本$a=array(0 => 1, 1 => 2,4,5,6);
 $array = [ “foo” => “bar”, “bar” => “foo”]; // PHP 7語(yǔ)法
b = [1,2,3]
追加$arr = array();
$arr[key1] = value1;
$arr[key2] = value2;
var mycars=new Array()
mycars[0]=”Saab”
mycars[1]=”Volvo”
mycars[2]=”BMW”
new
var mycars = new Array(“Saab”,”Volvo”,”BMW”)

循環(huán)

語(yǔ)言PHPJavaScript
for 循環(huán)for ($i=1; $i<=5; $i++)
{
echo $i ;
}  
for (var i=0; i < cars.length ; i++)
{
document.write(cars[i]);
}
foreach ,for in 循環(huán)$x=array(“one”,”two”,”three”);
foreach ($x as $value)  {
echo $value;
}
var person= {fname:”John”,lname:”Doe”,age:25};
for (x in person) {  
txt=txt + person[x];
}
while 循環(huán)while ($i <= 5)  {
echo $i ;
$i++;
}
while (i<5) {
x=x + “num is “ + i ;
   i++;
}
do while 循環(huán)do {
   $i++;
   echo  $i;
} while ($ i<= 5);
do {
   console.log(i);
  i++;
} while (i < 5);

數(shù)組函數(shù)

語(yǔ)言PHPJavaScript
獲取數(shù)組中元素的數(shù)目count($arr);arrayObject.length
拼接兩個(gè)字符串array_merge($arr1, $arr2);arr1.concat(arr2)
刪除數(shù)組元素unset($arr[$key]);delete arr1[key]
將數(shù)組拼接成字符串implode(‘,’, $arr1);arr.join(‘,’)
刪除并返回?cái)?shù)組最后元素$re = array_pop($arr1);re = arrayObject.pop()
向數(shù)組的末尾添加一個(gè)元素array_push($arr1, $var1);len = arrayObject.push(newele1)
將數(shù)組的第一個(gè)元素刪除并返回$re = array_shift($arr1);re = arrayObject.shift()
向數(shù)組的開頭添加一個(gè)或更多元素array_unshift($arr1, $var1);len = arrayObject.unshift(newele1)
從已有的數(shù)組中返回選定的元素$newArr = array_splice($arr1,$start,$len);newArr = arrayObject.slice(start,end)
排序sort($arr1);arrayObject.sort(sortByFunc = null)
顛倒數(shù)組中元素的順序array_reverse(&$arr, $keepKeys = true);arrayObject.reverse()



each 函數(shù)function map_Spanish($n)
{
   echo $n;
}
$b = array(“uno”, “dos”, “tres”, “cuatro”, “cinco”);
$c = array_map(“show_Spanish”, $a);
$.each([ 52, 97 ], function( index, value ) {
alert( index + “: “ + value );
});
// ↑ 這是 jQuery 方式
const items = [‘item1’, ‘item2’, ‘item3’];
items.forEach(function(item, index, arr){
 console.log(‘key:’ + index + ‘ value:’ + item);
});
(ES6引入)
回調(diào)函數(shù)迭代地將數(shù)組簡(jiǎn)化為單一的值function sum($carry, $item) {
   $carry += $item;
   return $carry;
}
$a = array(1, 2, 3, 4, 5);
var_dump(array_reduce($a, “sum”)); // int(15)
var numbers = [65, 44, 12, 4];
function getSum(total, num) {
   return total + num;
}
console.log(numbers.reduce(getSum));
始于ECMAScript 3
用回調(diào)函數(shù)過濾數(shù)組中的單元function odd($var) {
   // returns whether the input integer is odd
   return($var & 1);
}
$array1 = array(“a”=>1, “b”=>2, “c”=>3, “d”=>4, “e”=>5);
echo “Odd :\n”;
array_filter($array1, “odd”);
function isBigEnough(element) {
 return element >= 10;
}
var filtered = [12, 5, 8, 130, 44].filter(isBigEnough); \\ JavaScript 1.6 引入

字符

語(yǔ)言PHPJavaScript
創(chuàng)建$str = “a string”;
\\比較特殊的是PHP在雙引號(hào)字符中可以解析變量
$str2 = ‘tow string’;
var carname = “Volvo XC60”;
var carname = ‘Volvo XC60’;
(同樣的在雙引號(hào)中可以使用轉(zhuǎn)義字符)
多行字符$bar = <<<EOT
   foo
bar
EOT;
var tmpl =’\
   !!! 5\
   html\
     include header\
     body\
       include script’
字符拼接$str1 . $str2str1 + str2

字符串函數(shù)

語(yǔ)言PHPJavaScript
獲取字符長(zhǎng)度strlen($str);string.length
獲取子字符串substr ( string $string , int $start [, int $length ] ) : stringstring.substr(start,length)
str.slice(1,5);
使用一個(gè)字符串分割另一個(gè)字符串$pizza  = “piece1 piece2 piece3 piece4 piece5 piece6”;
$pieces = explode(“ “, $pizza);
echo $pieces[0]; // piece1
var str=”How are you doing today?”;
var n=str.split(“ “);
\ output:How,are,you,doing,today?
去除字符串首尾處的空白字符(或者其他字符)trim ( string $str [, string $character_mask = “ \t\n\r\0\x0B” ] ) : string
(PHP 函數(shù)的可定制要強(qiáng)一點(diǎn))
var str = “ string “;
alert(str.trim());
查找字符串首次出現(xiàn)的位置$mystring = ‘a(chǎn)bcsdfdsa’;
$pos = strpos($mystring, ‘cs’);
var str=”Hello world, welcome to the universe.”;
var n=str.indexOf(“welcome”);
把字符串轉(zhuǎn)換為小寫strtolower ( string $string ) : stringstring.toLowerCase()
把字符串轉(zhuǎn)換為大寫strtoupper ( string $string ) : stringstring.toUpperCase()

函數(shù)

語(yǔ)言PHPJavaScript
函數(shù)參數(shù)$argv = func_get_args ( void );var argv = arguments \\ 直接一個(gè)函數(shù)內(nèi)對(duì)象

對(duì)象

語(yǔ)言PHPJavaScript
空對(duì)象$obj = new stdClass();var obj = new Object();  // 或者
  person={firstname:”John”,lastname:”Doe”,age:50,eyecolor:”blue”};
對(duì)象屬性$obj = new stdClass();
$obj->a = 12;
var myCar = new Object();
myCar.year = 1969; // js還可以以數(shù)組形式
myCar[“year”] = 1969;
刪除屬性unset($obj->a);delete object.property  
delete object[‘property’]

正則

語(yǔ)言PHPJavaScript
創(chuàng)建正則表達(dá)式$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;
var myRe = new RegExp(“d(b+)d”, “g”);
POSIX 正則ereg ( string $pattern , string $string [, array &$regs ] ) : int(無(wú))

數(shù)學(xué)函數(shù)

語(yǔ)言PHPJavaScript
隨機(jī)函數(shù)$re = mt_rand($min, $max); // 返回 min~max 之間的隨機(jī)整數(shù)Math.random() // 返回 0 ~ 1 之間的隨機(jī)數(shù)
x的y次方pow(x,y)Math.pow(x,y)

包、空間

語(yǔ)言PHPJavaScript
命名空間namespace MySpace;(無(wú))
引入包use Package;
use Package as Package1, Package2;
const http = require(‘http’) (CommonJS規(guī)范)
import “my-module”;
import {foo as fo, bar} from “my-module”;
(es6實(shí)現(xiàn),import需要和export配合使用)
引入文件include ‘b.php’;
require ‘bc.php’;
<script type='text/javascript' src='b.js'></script> (僅在html中用)

其他

語(yǔ)言PHPJavaScript
展開,可變函數(shù)function add(…$numbers) {  
   foreach ($numbers as $n) {  
       $sum += $n;  
   }
}
echo add(1, 2, 3, 4); // PHP5.6 開始支持
function myFunction(x, y, z) { }
var args = [0, 1, 2];
myFunction(…args); (ES6開始支持)
解構(gòu)$my_array = array(‘a(chǎn)’=>’Dog’,’b’=>’Cat’,’c’=>’Horse’);
list($a, $b, $c) = $my_array;
// php5, 如果是php7版本支持以下語(yǔ)法
[‘a(chǎn)’=>$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);

關(guān)于PHP與Javascript語(yǔ)法對(duì)照、速查的詳細(xì)分析就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI