php7部分改变(2)

简介

介绍部分php7的新增特性和define和const的差别

标量类型声明

function sumOfArgs(string ...$args)
{
    return array_sum($args);
}
var_dump(sumOfArgs(2, '3', 4.1));

//int 类型返回的是9
//string 类型返回的是9.1

结果如下:

返回值类型声明

function testReturnType(string ...$args): string
{
    return array_sum($args);
}
var_dump(testReturnType(2, '3', 4.1));

//接受参数是字符型,返回指定字符型"9.1"
//接受参数是字符型,返回指定整型 9

null合并运算符,简化了使用三元运算符计算null

$username = $_GET['user'] ?? 'nobody';
var_dump($username);
$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';
var_dump($username);

太空船操作符,分别从整形,浮点型,字符串去对比
 

echo 1<=> 0; //1
echo 1<=> 2; //-1
echo 1<=> 1; //0
echo 5.5<=> 5.1; //1
echo 5.5<=> 5.8; //-1
echo 5.5<=> 5.5; //0
echo "1"<=> "0"; //1
echo "1"<=> "2"; //-1
echo "5.5"<=> "5.5"; //0

define 支持存数组了,php.56中是不支持的
 

define('TEST_DEF', ['zp', 'xb']);
var_dump(TEST_DEF);

结果如下

因为平时懂const比较多,简单介绍一下区别

  1. define 在代码编译时就定义的一个常量,而const是一个放到数据内存中的常量

  2. define 可以定义在随意的地方,而const是只能定义在代码头部

  3. define 可以使用表达式定义,而const只能是直白的文本

  4. define 可以通过第三个参数设定大小写不敏感,而const不能

增加一下结论代码

if (1) {
    const TEST_CON = 11;
    define("TEST_DEF", 22);
    var_dump(TEST_CON);
    var_dump(TEST_DEF);
}
$a = 'a';
define("TEST_DEF" . $a, 22);
const TEST_CON . $a = 11;

define('TESTDEF', 22, true);
const TESTCON = 11;
var_dump(TESTDEF);
var_dump(testdef);
var_dump(TESTCON);
var_dump(testcon);

结果如图:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值