关闭 x
IT技术网
    技 采 号
    ITJS.cn - 技术改变世界
    • 实用工具
    • 菜鸟教程
    IT采购网 中国存储网 科技号 CIO智库

    IT技术网

    IT采购网
    • 首页
    • 行业资讯
    • 系统运维
      • 操作系统
        • Windows
        • Linux
        • Mac OS
      • 数据库
        • MySQL
        • Oracle
        • SQL Server
      • 网站建设
    • 人工智能
    • 半导体芯片
    • 笔记本电脑
    • 智能手机
    • 智能汽车
    • 编程语言
    IT技术网 - ITJS.CN
    首页 » PHP »10个你应该学习使用的PHP特性

    10个你应该学习使用的PHP特性

    2016-01-22 00:00:00 出处:hollischuang
    分享

    本文主要总结了10个PHP特性,这些PHP特性对于PHP开发者来说都是应该学习和使用的,译文如下:

    1)标量类型声明(PHP7)

    PHP是一种松散类型的编程语言,因此没有提供任何指定输入参数类型和返回值类型的方法。 PHP7通过以下语法改变了这个现象:

    function add(int $x, int $y) : int
    {
        return $x + $y;
    }
    
    echo add(1, 2);

    有效类型为:类/接口名称,self,array(数组),callable(回调类型),bool(布尔型),float(浮点型),int(整型)和string(字符串)。

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

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

    //$a is not defined
    $b = NULL;
    $c = "abc123";
    
    echo($a    $b    $c);
    
    //Result: abc123

    3)匿名类(PHP7)

    PHP7中还有一个新增的也很不错,那就是匿名类。有时候,我们只是没有必要创建一个命名的类,因为它的名字会导致当前命名空间的膨胀。语法非常简单:

    echo (new class() {
        public function myMethod() {
          return "Hello!";
        }
    })->myMethod();
    
    //Result: Hello!

    4)Reflection

    Reflection是一个用来获取有关运行时代码信息的强大框架。让你可以对类、接口、函数、方法和扩展执行反向工程,以构建映射引擎,IoC容器或文档框架等等。

    下面是一个获取匿名类所有方法的简单例子:

    $class = new ReflectionClass(new class() {
        public function getText() {
            return "Hello from anonymous class";
        }
    });
    $methods = $class->getMethods();
    var_dump($methods);

    更多信息请看这里:http://php.net/manual/en/book.reflection.php

    5)短数组初始化

    在用PHP编程的时候,我倾向于大量使用数组,因为它们不仅功能强大,而且简单易用。PHP的5.4.x版本使得更容易初始化:

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

    6)DateTime类

    PHP的5.2版本附带DateTime类作为首选的操纵和格式化日期和时间的方式。

    更多信息请看这里:http://php.net/manual/en/class.datetime.php

    7)Lambda表达式/匿名函数

    匿名函数(有时也被称为lambda表达式)是没有指定名称的函数。匿名函数可以被分配给一个变量,如下例所示:

    $sayHi = function($toName) {
        echo("Hi " . $toName);
    };
    
    $sayHi("Peter");

    更多信息请看这里:http://php.net/manual/en/functions.anonymous.php

    8)array_map

    array_map是一个不错的函数,能帮助你对数组中的每个元素执行计算。这在混合了匿名函数/ lambda表达式的时候特别好用。无论你为数组中的元素提供什么方法,array_map函数都适用:

    $nameLengths = array_map(function($item) {
        return strlen($item); }, ["Sue", "Peter", "Michael"]);
    
    //Result: 3, 5, 7

    需要注意的是,array_map可能会比foreach慢一点儿(特别当混合使用lambda表达式的时候更为明显),所以要慎用于那些非常大的数组。

    更多信息请看这里:http://php.net/manual/en/function.array-map.php

    9)json_encode()和json_decode()

    我最近倾向于大量使用JSON序列化和反序列化。PHP的json_encode和json_decode函数对此提供了大力支持。需要注意的是,json_encode会忽略私有成员:

    class car {
        public $make = "Tesla";
        public $model ="Model S";
        private $errorCodes = ['34343', '545344'];
    }     
    $carAsJson = json_encode(new car());
    
    //Result: {"make":"Tesla","model":"Model S"}

    更多信息请看这里:http://php.net/manual/en/function.json-encode.php

    10)密码的哈希(hashing)和验证

    PHP通过password_hash和password_verify函数,用一种安全的方式来大力支持密码的哈希和验证。因为使用非常简单,所以我们就没有必要重新发明轮子了。想查看案例的话,请点击下面的文章:

    http://www.codeaddiction.net/articles/4/hash-and-verify-passwords-in-php—the-right-way

    作为PHP程序员,以上这10个PHP特性你一定要熟悉,感谢您的阅读。

    上一篇返回首页 下一篇

    声明: 此文观点不代表本站立场;转载务必保留本文链接;版权疑问请联系我们。

    别人在看

    抖音安全与信任开放日:揭秘推荐算法,告别单一标签依赖

    ultraedit编辑器打开文件时,总是提示是否转换为DOS格式,如何关闭?

    Cornell大神Kleinberg的经典教材《算法设计》是最好入门的算法教材

    从 Microsoft 下载中心安装 Windows 7 SP1 和 Windows Server 2008 R2 SP1 之前要执行的步骤

    Llama 2基于UCloud UK8S的创新应用

    火山引擎DataTester:如何使用A/B测试优化全域营销效果

    腾讯云、移动云继阿里云降价后宣布大幅度降价

    字节跳动数据平台论文被ICDE2023国际顶会收录,将通过火山引擎开放相关成果

    这个话题被围观超10000次,火山引擎VeDI如此解答

    误删库怎么办?火山引擎DataLeap“3招”守护数据安全

    IT头条

    平替CUDA!摩尔线程发布MUSA 4性能分析工具

    00:43

    三起案件揭开侵犯个人信息犯罪的黑灰产业链

    13:59

    百度三年开放2.1万实习岗,全力培育AI领域未来领袖

    00:36

    工信部:一季度,电信业务总量同比增长7.7%,业务收入累计完成4469亿元

    23:42

    Gartner:2024年全球半导体营收6559亿美元,AI助力英伟达首登榜首

    18:04

    技术热点

    iOS 8 中如何集成 Touch ID 功能

    windows7系统中鼠标滑轮键(中键)的快捷应用

    MySQL数据库的23个特别注意的安全事项

    Kruskal 最小生成树算法

    Ubuntu 14.10上安装新的字体图文教程

    Ubuntu14更新后无法进入系统卡在光标界面解怎么办?

      友情链接:
    • IT采购网
    • 科技号
    • 中国存储网
    • 存储网
    • 半导体联盟
    • 医疗软件网
    • 软件中国
    • ITbrand
    • 采购中国
    • CIO智库
    • 考研题库
    • 法务网
    • AI工具网
    • 电子芯片网
    • 安全库
    • 隐私保护
    • 版权申明
    • 联系我们
    IT技术网 版权所有 © 2020-2025,京ICP备14047533号-20,Power by OK设计网

    在上方输入关键词后,回车键 开始搜索。Esc键 取消该搜索窗口。