程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> PHP7標量類型declare用法實例分析

PHP7標量類型declare用法實例分析

編輯:PHP綜合

本文實例講述了PHP7標量類型declare用法。分享給大家供大家參考,具體如下:

php7為了提高執行效率,在函數方法中增加了標量類型(布爾、浮點、整型、字符)的申明特性,節省了對數據類型的檢測。

php7 仍然支持弱類型檢測,即仍然可以使用原來的方式聲明形參。

標量聲明有兩種特性:

強制模式(默認):體現在類型轉換上

嚴格模式

模式聲明:declare(strict_types=1);

默認情況值為0,值為1代表為嚴格校驗的模式

可以使用的類型參數:

int-float-bool-string-interfaces-array-callable

作用於形參與返回值類型說明,可選

形參

//強制模式
<?php
/**
 * Created by PhpStorm.
 * User: bee
 * Date: 2016/4/22
 * Time: 10:17
 */
// php7之前申明方式
function type_weak(... $int){
  return array_sum($int);
}
// 強制模式 php7聲明方式
//強制模式下會將所有實參轉換為整型
function sum(int ... $ints)
{
  //array_sum() 將數組中的所有值的和以整數或浮點數的結果返回。
  print_r($ints);
  echo "<br>";
  return array_sum($ints);
}
echo type_weak(2, '3',0.11);
echo "<hr>";
echo sum(2, '3',0.11);

運行效果圖如下:

//將模式申明為嚴格模式
<?php
/**
 * Created by PhpStorm.
 * User: bee
 * Date: 2016/4/22
 * Time: 10:17
 */
 //declare 必須在文件首部
declare(strict_types=1);
// 強制模式(默認)
function type_weak(... $int){
  return array_sum($int);
}
// 強制模式
function sum(int ... $ints)
{
  //array_sum() 將數組中的所有值的和以整數或浮點數的結果返回。
  print_r($ints);
  echo "<br>";
  return array_sum($ints);
}
echo type_weak(2, '3',0.11);
echo "<hr>";
//實參存在字符串與浮點型,報錯
echo sum(2, '3',0.11);

運行效果圖如下:

返回值

<?php
/**
 * Created by PhpStorm.
 * User: bee
 * Date: 2016/4/22
 * Time: 10:17
 */
declare(strict_types=0);
// 強制模式(默認)
function type_weak(... $int) :int{
  return array_sum($int);
}
// 強制模式
function sum(int ... $ints) :int
{
  //array_sum() 將數組中的所有值的和以整數或浮點數的結果返回。
  print_r($ints);
  echo "<br>";
  //嚴格模式下報錯
  return array_sum($ints)+0.6;
}
echo type_weak(2, '3',0.11);
echo "<hr>";
echo sum(2, '3',0.11);

運行效果圖如下:

更多關於PHP相關內容感興趣的讀者可查看本站專題:《PHP基本語法入門教程》、《PHP運算與運算符用法總結》、《php面向對象程序設計入門教程》、《PHP網絡編程技巧總結》、《PHP數組(Array)操作技巧大全》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》

希望本文所述對大家PHP程序設計有所幫助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved