亚欧洲精品在线观看,窝窝影院午夜看片,久久国产成人午夜av影院宅,午夜91,免费国产人成网站,ts在线视频,欧美激情在线一区

php語(yǔ)言

10個(gè)你應(yīng)該學(xué)習(xí)使用的PHP特性

時(shí)間:2025-02-22 14:57:09 php語(yǔ)言 我要投稿
  • 相關(guān)推薦

10個(gè)你應(yīng)該學(xué)習(xí)使用的PHP特性

  本文主要總結(jié)了10個(gè)關(guān)于PHP的特性,這些PHP特性對(duì)于PHP開(kāi)發(fā)者來(lái)說(shuō)都是應(yīng)該學(xué)習(xí)和使用的,譯文如下:

10個(gè)你應(yīng)該學(xué)習(xí)使用的PHP特性

  1)標(biāo)量類(lèi)型聲明(PHP7)

  PHP是一種松散類(lèi)型的編程語(yǔ)言,因此沒(méi)有提供任何指定輸入?yún)?shù)類(lèi)型和返回值類(lèi)型的方法。 PHP7通過(guò)以下語(yǔ)法改變了這個(gè)現(xiàn)象:

  function add(int $x, int $y) : int

  {

  return $x + $y;

  }

  echo add(1, 2);

  有效類(lèi)型為:類(lèi)/接口名稱(chēng),self,array(數(shù)組),callable(回調(diào)類(lèi)型),bool(布爾型),float(浮點(diǎn)型),int(整型)和string(字符串)。

  2)?? — 空接合操作符(PHP7)

  空接合操作符雖然小,但非常好用,是PHP7中新增加的。?? — 只要操作符的左邊存在且不為空,就返回左邊,否則就返回操作符的右邊:

  //$a is not defined

  $b = NULL;

  $c = "abc123";

  echo($a ?? $b ?? $c);

  //Result: abc123

  3)匿名類(lèi)(PHP7)

  PHP7中還有一個(gè)新增的也很不錯(cuò),那就是匿名類(lèi)。有時(shí)候,我們只是沒(méi)有必要?jiǎng)?chuàng)建一個(gè)命名的類(lèi),因?yàn)樗拿謺?huì)導(dǎo)致當(dāng)前命名空間的膨脹。語(yǔ)法非常簡(jiǎn)單:

  echo (new class() {

  public function myMethod() {

  return "Hello!";

  }

  })->myMethod();

  //Result: Hello!

  4)Reflection

  Reflection是一個(gè)用來(lái)獲取有關(guān)運(yùn)行時(shí)代碼信息的強(qiáng)大框架。讓你可以對(duì)類(lèi)、接口、函數(shù)、方法和擴(kuò)展執(zhí)行反向工程,以構(gòu)建映射引擎,IoC容器或文檔框架等等。

  下面是一個(gè)獲取匿名類(lèi)所有方法的簡(jiǎn)單例子:

  $class = new ReflectionClass(new class() {

  public function getText() {

  return "Hello from anonymous class";

  }

  });

  $methods = $class->getMethods();

  var_dump($methods);

  5)短數(shù)組初始化

  在用PHP編程的時(shí)候,我傾向于大量使用數(shù)組,因?yàn)樗鼈儾粌H功能強(qiáng)大,而且簡(jiǎn)單易用。PHP的5.4.x版本使得更容易初始化:

  $myArray = ["foo", "name" => "bar"];

  6)DateTime類(lèi)

  PHP的5.2版本附帶DateTime類(lèi)作為首選的操縱和格式化日期和時(shí)間的方式。

  7)Lambda表達(dá)式/匿名函數(shù)

  匿名函數(shù)(有時(shí)也被稱(chēng)為lambda表達(dá)式)是沒(méi)有指定名稱(chēng)的函數(shù)。匿名函數(shù)可以被分配給一個(gè)變量,如下例所示:

  $sayHi = function($toName) {

  echo("Hi " . $toName);

  };

  $sayHi("Peter");

  8)array_map

  array_map是一個(gè)不錯(cuò)的函數(shù),能幫助你對(duì)數(shù)組中的每個(gè)元素執(zhí)行計(jì)算。這在混合了匿名函數(shù)/ lambda表達(dá)式的時(shí)候特別好用。無(wú)論你為數(shù)組中的元素提供什么方法,array_map函數(shù)都適用:

  $nameLengths = array_map(function($item) {

  return strlen($item); }, ["Sue", "Peter", "Michael"]);

  //Result: 3, 5, 7

  需要注意的是,array_map可能會(huì)比f(wàn)oreach慢一點(diǎn)兒(特別當(dāng)混合使用lambda表達(dá)式的時(shí)候更為明顯),所以要慎用于那些非常大的數(shù)組。

  9)json_encode()和json_decode()

  我最近傾向于大量使用JSON序列化和反序列化。PHP的json_encode和json_decode函數(shù)對(duì)此提供了大力支持。需要注意的是,json_encode會(huì)忽略私有成員:

  class car {

  public $make = "Tesla";

  public $model ="Model S";

  private $errorCodes = ['34343', '545344'];

  }

  $carAsJson = json_encode(new car());

  //Result: {"make":"Tesla","model":"Model S"}

  10)密碼的哈希(hashing)和驗(yàn)證

  PHP通過(guò)password_hash和password_verify函數(shù),用一種安全的方式來(lái)大力支持密碼的哈希和驗(yàn)證。因?yàn)槭褂梅浅:?jiǎn)單,所以我們就沒(méi)有必要重新發(fā)明輪子了。想查看案例的話,請(qǐng)點(diǎn)擊下面的文章:

  作為PHP程序員,以上這10個(gè)PHP特性你一定要熟悉,感謝您的閱讀。

【10個(gè)你應(yīng)該學(xué)習(xí)使用的PHP特性】相關(guān)文章:

你應(yīng)該學(xué)習(xí)的10個(gè)PHP特性05-28

PHP語(yǔ)言的使用特性04-23

新手應(yīng)該如何學(xué)習(xí)PHP語(yǔ)言12-19

PHP應(yīng)該如何系統(tǒng)學(xué)習(xí)04-22

零基礎(chǔ)學(xué)習(xí)PHP應(yīng)該怎么學(xué)習(xí)04-23

學(xué)習(xí)PHP語(yǔ)言應(yīng)該知道的那些事06-26

PHP語(yǔ)言有哪些特性02-20

PHP語(yǔ)言的特性有哪些06-04

零基礎(chǔ)學(xué)習(xí)PHP應(yīng)該怎么學(xué)03-01