php新写法

自 PHP 5.3 起,可以省略三元运算符中间那部分。表达式 expr1 ?: expr3 在 expr1 求值为 TRUE 时返回 expr1,否则返回 expr3。

<?php
$test = ‘菜鸟教程‘;
// 普通写法
$username = isset($test) ? $test : ‘nobody‘;
echo $username, PHP_EOL;

// PHP 5.3+ 版本写法
$username = $test ?: ‘nobody‘;
echo $username, PHP_EOL;
?>

注意:PHP_EOL 是一个换行符,兼容更大平台。

在 PHP7+ 版本多了一个 NULL 合并运算符,实例如下:

<?php
// 如果 $_GET[‘user‘] 不存在返回 ‘nobody‘,否则返回 $_GET[‘user‘] 的值
$username = $_GET[‘user‘] ?? ‘nobody‘;
// 类似的三元运算符
$username = isset($_GET[‘user‘]) ? $_GET[‘user‘] : ‘nobody‘;
?>

组合比较符(PHP7+)

PHP7+ 支持组合比较符,实例如下:

<?php
// 整型
echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1

// 浮点型
echo 1.5 <=> 1.5; // 0
echo 1.5 <=> 2.5; // -1
echo 2.5 <=> 1.5; // 1

// 字符串
echo "a" <=> "a"; // 0
echo "a" <=> "b"; // -1
echo "b" <=> "a"; // 1
?>
时间: 2024-10-24 11:51:46

php新写法的相关文章

IOS数组、字典、NSNumber 新写法—— @[]、@{}

IOS数组.字典.NSNumber 新写法—— @[].@{} //标准写法 NSNumber * number = [NSNumber numberWithInt:1]; NSArray * array = [NSArray arrayWithObjects:@"one", @"two", nil]; NSDictionary * dict = [NSDictionary dictionaryWithObjectsAndKeys:@"value1&quo

精通Matlab神经网络例10-16的新写法

<精通Matlab神经网络>书中示例10-16,在创建BP网络时,原来的写法是: net = newff(minmax(alphabet),[S1 S2],{'logsig' 'logsig'},'traingdx'); 因为运行过程中有提示,自然想改成新写法(参考之前的随笔<MATLAB神经网络函数NEWFF()新旧用法差异>): net = newff(alphabet, targets, S1, {'logsig', 'logsig'}, 'traingdx'); net.d

在iOS8.0之后的UIAlertView和UIActionSheet的新写法

在iOS8.0之后,苹果更新了UIAlertView和UIActionSheet的创建方法.在以前的版本中,这两个提醒用户的控件各自有自己的创建方法,但是在iOS8.0之后,使用了UIAlertController这个控制器类统一创建.不过之前的创建方法并没有在iOS8.0之后的版本中实效,依然可以正常使用.下边就记录下新的写法. 首先看苹果API的示例写法: UIAlertController* alert = [UIAlertController alertControllerWithTit

【Hibernate】Hibernate的层次划分,Hibernate4.3的初始化的新写法

在<[Hibernate]Hibernate的在Eclipse+Mysql的配置.安装,纯Java,利用Annotation与HQL完成数据库的增删改查>(点击打开链接)介绍了Hibernate的配置与基本结构,其作用就是数据库与Java文件的交互媒介.但是,上文的程序写得非常乱,也用很多Hibernate3的过时写法.主要是没有划分好层次所致.其实,虽然Hibernate的初始化越搞越复杂,首先要载入配置文件.建立一个Session的抽象工厂.最后则根据Session工厂建立Session,

具名插槽、作用域插槽的新写法

插槽 具名插槽 自 2.6.0 起有所更新.已废弃的使用 slot attribute 的语法 但是我们有了新的语法,如下: 子组件 childCom: <template id="childCom"> <div> <!-- 具名插槽的针对于组件中不止一个插槽的情况下使用,使用方式,即:给每个插槽指定 name 属性,在使用的时候需要给标签设置 slot 属性,且属性值为 对应的 name 属性的属性值 --> <slot name='left

Flex布局新写法兼容写法详解

很久之前用过flex,但是没有考虑过兼容性问题,为了兼容ios一定要加上-webkit前缀: ul{ display: flex; /* 新版本语法: Opera 12.1, Firefox 22+ */ display: -webkit-flex; } li{ flex:1 0 auto; -webkit-flex:1 0 auto; 合并写法,不缩放宽度 flex-shink = 0 } 注意:用过flex布局后,子元素的float,position都没有效了 flex布局教程参考网址,非常

DropDrowList控件添加“请选择” 新写法

this.DropDrowListNews.Items.Insert(0 ,new ListItem("请选择","0")); 写法说明: this.DropDrowListNews.Items 当前控件集合.Insert(插入) (“将信息插入第几个下标” ,  创建一个结合 new ListItem(“插入vlaue”,"0")注意格式:new ListItem(string Text,string value)  ;

MultiType 复杂列表视图新写法

Demo:https://github.com/baiqiantao/MultiTypeTest.git GitHub:https://github.com/drakeet/MultiType compile 'me.drakeet.multitype:multitype:3.1.0' MultiType 介绍 在开发我的 TimeMachine 时,我有一个复杂的聊天页面,于是我设计了我的类型池系统,它是完全解耦的,因此我能够轻松将它抽离出来分享,并给它取名为 MultiType. 从前,比如

在SQL Server2008中声明和初始化变量的新写法

1 DECLARE @temp INT = 1; 2 PRINT @temp; 或者 1 DECLARE @temp AS INT = 1; 2 PRINT @temp; 能够用同一语句声明和初始化变量是SQL Server2008的新功能.在早期版本中,应使用单独的DECLARE和SET语句.

【iOS开发-51】案例学习:动画新写法、删除子视图、视图顺序、延迟方法、button多功能使用方法及icon图标和启动页设置

案例效果: (1)导入所需的素材,然后用storyboard把上半截位置和大小相对固定的东西布局起来.当然,这些控件也要定义成对应地IBOutlet和IBAction方便兴许使用它们. 注意:本案例在3.5inch设备上显示最佳,所以须要设置一下. (2)首先实现点击"下一题"的功能 - (IBAction)nextQuestion { //1.序号添加 self.index++; //2.依据序号拿到相应的模型(对象) NSQuestion *question=self.questi