亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

php7函數,聲明,返回值等新特性介紹

2024-09-04 11:42:23
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了php7函數,聲明,返回值等新特性,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下。

使用 ... 運算符定義變長參數函數 (PHP 5 >= 5.6.0, PHP 7)

現在可以不依賴 func_get_args(), 使用 ... 運算符 來實現 變長參數函數。

  1. <?php 
  2. function f($req$opt = null, ...$params) { 
  3.  // $params 是一個包含了剩余參數的數組 
  4.  printf('$req: %d; $opt: %d; number of params: %d'."/n"
  5.   $req$optcount($params)); 
  6. f(1); 
  7. f(1, 2); 
  8. f(1, 2, 3); 
  9. f(1, 2, 3, 4); 
  10. f(1, 2, 3, 4, 5); 
  11. ?> 

以上例程會輸出:

  1. $req: 1; $opt: 0; number of params: 0 
  2. $req: 1; $opt: 2; number of params: 0 
  3. $req: 1; $opt: 2; number of params: 1 
  4. $req: 1; $opt: 2; number of params: 2 
  5. $req: 1; $opt: 2; number of params: 3 

使用 ... 運算符進行參數展開 (PHP 5 >= 5.6.0, PHP 7)

在調用函數的時候,使用 ... 運算符, 將 數組 和 可遍歷 對象展開為函數參數,在其他編程語言,比如 Ruby中,這被稱為連接運算符。

  1. <?php 
  2. function add($a$b$c) { 
  3.  return $a + $b + $c
  4. $operators = [2, 3]; 
  5. echo add(1, ...$operators); 
  6. ?> 

以上例程會輸出:

6

use function 以及 use const (PHP 5 >= 5.6.0, PHP 7)

use 運算符 被進行了擴展以支持在類中導入外部的函數和常量,對應的結構為 use function 和 use const。

  1. <?php 
  2. namespace Name/Space { 
  3.  const FOO = 42; 
  4.  function f() { echo FUNCTION."/n"; } 
  5. namespace { 
  6.  use const Name/Space/FOO; 
  7.  use function Name/Space/f; 
  8.  echo FOO."/n"
  9.  f(); 
  10. ?> 

以上例程會輸出:

42

Name/Space/f

debugInfo() (PHP 5 >= 5.6.0, PHP 7)

加入 debugInfo(), 當使用 var_dump() 輸出對象的時候, 可以用來控制要輸出的屬性和值。

  1. <?php 
  2. class C { 
  3.  private $prop
  4.  public function construct($val) { 
  5.  $this->prop = $val
  6.  } 
  7.  public function debugInfo() { 
  8.  return [ 
  9.   'propSquared' => $this->prop ** 2, 
  10.  ]; 
  11.  } 
  12. var_dump(new C(42)); 
  13. ?> 

以上例程會輸出:

  1. object(C)#1 (1) { 
  2.  ["propSquared"]=> 
  3.  int(1764) 

標量類型聲明 (PHP 7)

標量類型聲明 有兩種模式: 強制 (默認) 和 嚴格模式。 現在可以使用下列類型參數(無論用強制模式還是嚴格模式): 字符串(string), 整數 (int), 浮點數 (float), 以及布爾值 (bool)。它們擴充了PHP5中引入的其他類型:類名,接口,數組和 回調類型。

  1. <?php 
  2. // Coercive mode 
  3. function sumOfInts(int ...$ints
  4. return array_sum($ints); 
  5. var_dump(sumOfInts(2, '3', 4.1)); 

以上例程會輸出:

int(9)

要使用嚴格模式,一個 declare 聲明指令必須放在文件的頂部,這意味著嚴格聲明標量是基于文件可配的。 這個指令不僅影響參數的類型聲明,也影響到函數的返回值聲明(參見返回值類型聲明, 內置的PHP函數以及擴展中加載的PHP函數)

返回值類型聲明 (PHP 7)

PHP 7 增加了對返回類型聲明的支持。 類似于參數類型聲明,返回類型聲明指明了函數返回值的類型。可用的類型與參數聲明中可用的類型相同。

  1. <?php 
  2. function arraysSum(array ...$arrays): array 
  3.  return array_map(function(array $array): int { 
  4.  return array_sum($array); 
  5.  }, $arrays); 
  6. print_r(arraysSum([1,2,3], [4,5,6], [7,8,9])); 

以上例程會輸出:

  1. Array 
  2. [0] => 6 
  3. [1] => 15 
  4. [2] => 24 

null合并運算符 (PHP 7)

由于日常使用中存在大量同時使用三元表達式和 isset()的情況, 我們添加了null合并運算符 (??) 這個語法糖。如果變量存在且值不為NULL, 它就會返回自身的值,否則返回它的第二個操作數。

  1. <?php 
  2. // Fetches the value of $_GET['user'] and returns 'nobody' 
  3. // if it does not exist. 
  4. $username = $_GET['user'] ?? 'nobody'
  5. // This is equivalent to: 
  6. $username = isset($_GET['user']) ? $_GET['user'] : 'nobody'
  7.    
  8. // Coalesces can be chained: this will return the first 
  9. // defined value out of $_GET['user'], $_POST['user'], and 
  10. // 'nobody'. 
  11. $username = $_GET['user'] ?? $_POST['user'] ?? 'nobody'
  12. ?> 

太空船操作符(組合比較符)(PHP 7)

太空船操作符用于比較兩個表達式,當$a小于、等于或大于$b時它分別返回-1、0或1, 比較的原則是沿用 PHP 的常規比較規則進行的。

  1. <?php 
  2. // Integers 
  3. echo 1 <=> 1; // 0 
  4. echo 1 <=> 2; // -1 
  5. echo 2 <=> 1; // 1 
  6. // Floats 
  7. echo 1.5 <=> 1.5; // 0 
  8. echo 1.5 <=> 2.5; // -1 
  9. echo 2.5 <=> 1.5; // 1 
  10. // Strings 
  11. echo "a" <=> "a"// 0 
  12. echo "a" <=> "b"// -1 
  13. echo "b" <=> "a"// 1 
  14. ?> 

通過 define() 定義常量數組 (PHP 7)

Array 類型的常量現在可以通過 define() 來定義,在 PHP5.6 中僅能通過 const 定義。

  1. <?php 
  2. define('ANIMALS', [ 
  3.  'dog'
  4.  'cat'
  5.  'bird' 
  6. ]); 
  7. echo ANIMALS[1]; // outputs "cat" 
  8. ?>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文字幕亚洲一区在线观看| 日韩av免费看| 国产精品十八以下禁看| 日韩欧美国产成人| 亚洲精品免费在线视频| 欧美黄色小视频| 日韩麻豆第一页| 亚洲国产97在线精品一区| 日韩精品高清在线观看| 亚洲精品在线观看www| 国产精品一久久香蕉国产线看观看| 欧美一区二区三区……| 久久成人av网站| 日韩电影免费在线观看中文字幕| 亚洲欧美日本伦理| 国产精品久久久久久久av大片| 日韩av在线电影网| 最新69国产成人精品视频免费| 亚洲精品大尺度| 中文字幕亚洲一区在线观看| 欧美一区二区三区……| 91九色精品视频| 亚洲精品电影在线| 日韩中文字幕网| 欧美大尺度激情区在线播放| 狠狠躁夜夜躁久久躁别揉| 日韩一区二区av| 亚洲国产小视频在线观看| 国产美女久久久| 日韩免费看的电影电视剧大全| 18久久久久久| 国产精品欧美风情| 尤物yw午夜国产精品视频| 国产免费一区视频观看免费| 国产精品一区=区| 国产精品日韩一区| 日韩精品免费视频| 久久久久久久av| 久久久国产91| 国产精品手机播放| 国产91精品最新在线播放| 欧美影院成年免费版| 国产+人+亚洲| 欧美日韩一二三四五区| 欧美成人激情视频免费观看| 亚洲天堂网站在线观看视频| 中文字幕亚洲欧美日韩高清| 亚洲精品小视频| 成人亲热视频网站| 久久青草精品视频免费观看| 色偷偷9999www| www.日韩免费| 国产在线视频欧美| 国产欧美日韩精品专区| 国内免费久久久久久久久久久| 欧美激情性做爰免费视频| 久久精品国产亚洲一区二区| 欧美疯狂性受xxxxx另类| 秋霞午夜一区二区| 在线视频免费一区二区| 日韩成人在线视频网站| 亚洲国产精品va在线| 亚洲伊人第一页| 最近2019中文字幕一页二页| 欧美黄网免费在线观看| 不卡av电影在线观看| 日韩av在线影视| 欧美日韩美女在线观看| 国内精品久久久久伊人av| 97视频免费看| 丝袜美腿亚洲一区二区| 日韩国产激情在线| 欧美性生活大片免费观看网址| 欧美激情在线视频二区| 欧美最顶级的aⅴ艳星| 久久久成人精品视频| 中文字幕亚洲欧美一区二区三区| 2018中文字幕一区二区三区| 精品亚洲精品福利线在观看| 国产v综合v亚洲欧美久久| 色综合色综合久久综合频道88| 久久五月天综合| 精品电影在线观看| 国产精品女人久久久久久| 成人免费高清完整版在线观看| 青青青国产精品一区二区| 欧美乱妇40p| 国产高清视频一区三区| 久久99精品国产99久久6尤物| 国产精品国内视频| 日韩中文视频免费在线观看| 国产人妖伪娘一区91| 精品国产老师黑色丝袜高跟鞋| 国产精品夜色7777狼人| 久久久久久国产精品| 日韩av中文字幕在线播放| 国产大片精品免费永久看nba| 久久久久久中文字幕| 久久视频在线看| 亚洲视频免费一区| 亚洲精品www久久久久久广东| 中日韩美女免费视频网站在线观看| 国产午夜精品全部视频在线播放| 国产精品第七十二页| www国产91| 欧美巨猛xxxx猛交黑人97人| 欧美日韩综合视频| 热99在线视频| 精品一区精品二区| 久久在精品线影院精品国产| 蜜臀久久99精品久久久久久宅男| 久久激情视频免费观看| 亚洲黄页视频免费观看| 热99在线视频| 欧美成人精品一区二区三区| 国产视频久久久久久久| 国模gogo一区二区大胆私拍| 国产亚洲福利一区| 黄色成人在线播放| 日韩第一页在线| 在线免费观看羞羞视频一区二区| 日韩高清a**址| 欧美精品在线免费观看| 久久久久久国产精品久久| 在线播放日韩专区| 中日韩美女免费视频网址在线观看| 美女国内精品自产拍在线播放| 国产美女精品视频免费观看| 8x拔播拔播x8国产精品| 国产成人avxxxxx在线看| 欧美一区二区大胆人体摄影专业网站| 国产精品电影网站| 中文字幕亚洲天堂| 色午夜这里只有精品| 97久久精品在线| 成人免费在线视频网站| 伊人伊成久久人综合网小说| 亚洲小视频在线| 久久久久国产精品免费网站| 久久久久久国产精品| 欧美一级成年大片在线观看| 欧美中文字幕在线| 欧美大秀在线观看| 韩国v欧美v日本v亚洲| 欧美日韩综合视频网址| 欧美精品日韩三级| 亚洲欧美国产一区二区三区| 日韩性xxxx爱| 成人午夜黄色影院| 91精品91久久久久久| 91精品视频在线播放| 高清欧美一区二区三区| 欧美日韩亚洲视频| 国产91久久婷婷一区二区| 黑人狂躁日本妞一区二区三区| 4p变态网欧美系列| 国产成人精品综合| 日韩在线视频网站| 国产欧美精品久久久| 欧美亚洲第一区| 日韩高清电影好看的电视剧电影| 国内精品模特av私拍在线观看| 免费不卡欧美自拍视频| 夜夜嗨av色一区二区不卡|