gouchaoer2
V2EX  ›  PHP

PHP 的类属性强类型要来了

  •  1
     
  •   gouchaoer2 · Jun 22, 2018 via Android · 9029 views
    This topic created in 2881 days ago, the information mentioned may be changed or developed.
    https://wiki.php.net/rfc/typed_properties_v2

    rfc 是第二版,作者有 Nikita,所以大概率会采用

    现在 php 如果再来一个变量强类型的话,那 php 就顺利从 c 的胶水语言演变成 java 了
    33 replies    2018-06-23 14:29:02 +08:00
    SimbaPeng
        1
    SimbaPeng  
       Jun 22, 2018 via Android   ❤️ 1
    php 和 java 差的只是一个强类型变量?
    feiyuanqiu
        2
    feiyuanqiu  
       Jun 22, 2018
    还不够,array 这玩意还是得靠 docblock 注释出元素类型才行,不然用途有限。nikita 柏林大学的 phd,想法多,估计下一步他就要提泛型的 rfc 了
    yunye
        3
    yunye  
       Jun 22, 2018 via Android
    还能不向后兼容了不成
    Actrace
        4
    Actrace  
       Jun 22, 2018
    强类型弱类型都不影响,作为 PHP 最大的优势,自动类型预判和相关的内存管理是不可能丢掉的。
    sagaxu
        5
    sagaxu  
       Jun 22, 2018 via Android
    强类型只是第一步,还要加上 JIT 和更好的 gc,然后是泛型和多线程,靠社区的力量,稳定版发布,奔 2030 年去了
    swcat
        6
    swcat  
       Jun 22, 2018 via iPhone
    韩大佬不是在弄也在弄 typephp
    zjsxwc
        7
    zjsxwc  
       Jun 22, 2018
    从注释变成了写类型,反正对 ide 用户来说使用区别不大。
    doubleflower
        8
    doubleflower  
       Jun 22, 2018
    和 java 一样的话何不直接用 java ?
    Seanfuck
        9
    Seanfuck  
       Jun 22, 2018   ❤️ 1
    这是在减弱 php 的优势!
    lazypu
        10
    lazypu  
       Jun 22, 2018
    并不是所有人学语言都跟喝水一样。
    alexzhou
        11
    alexzhou  
       Jun 22, 2018
    PHP 的历史糟粕太多,又要向下兼容
    m939594960
        12
    m939594960  
       Jun 22, 2018
    为啥不用 hhvm
    gouchaoer
        13
    gouchaoer  
       Jun 22, 2018
    @sagaxu 恕我直言,这是不太可能的。。。因为 php 照顾的肯定是 fpm 生态,而 fpm 生态里面 gc 已经够用了,而 jit 很难提高太多性能了,至于泛型那更是不需要的,多线程本来就有
    sunmonster
        14
    sunmonster  
       Jun 22, 2018
    @m939594960 hhvm 已经不兼容 php 了,怕有些库会出现莫名奇妙的问题,语法层面目前 php 其实没多大问题,如果能加上异步 async await 就好了,就像 hack 一样,但是直接用 hack 又怕某些库不兼容
    gouchaoer
        15
    gouchaoer  
       Jun 22, 2018
    变量强类型估计不会做,因为做了这个 php 就不再是脚本语言了,韩天峰在尝试搞强类型的 php 也就是 typephp,老实说我比较怀疑这个的应用场景
    haohappy
        16
    haohappy  
       Jun 22, 2018
    @sunmonster hhvm 支持 PHP5.2 就足够了 剩下的 随便你们去折腾了
    gouchaoer
        17
    gouchaoer  
       Jun 22, 2018
    @sunmonster 其实 async/await 以及 promise/yield 并不是一个好的解决阻塞的方案,和回调一样有 callback hell 问题,因为会有调用栈传染,最后搞得很复杂。。。你说的这个 rfc 里面可以找到: https://wiki.php.net/rfc/fiber,但是这个很鸡肋,zanphp/php-msf 等框架就是代表,很难很复杂。。。现在 swoole 有像 golang 那样的全协程了,php 在这里发是领先的: https://github.com/swoole/swoole-src/blob/master/examples/coroutine/coro_nested.php
    crist
        18
    crist  
       Jun 22, 2018
    真正的 PHPer 是不会用强类型的。
    scnace
        19
    scnace  
       Jun 22, 2018 via Android
    @gouchaoer 还以为你大号被封了 开小号发帖
    jasonchen168
        20
    jasonchen168  
       Jun 22, 2018
    走远了
    realpg
        21
    realpg  
    PRO
       Jun 22, 2018
    弱类型是 php 最大的优势之一
    扯什么性能之类的,真正需要压榨这个的,完全可以不用 php
    abcbuzhiming
        22
    abcbuzhiming  
       Jun 22, 2018
    光这个有啥用,有没有编译时类型检查才是重点,动态语言的坑就在于没有类型检查
    ngg0707
        23
    ngg0707  
       Jun 22, 2018
    php 的“异常”和“错误”及其捕捉,我至今没太搞懂
    shijingshijing
        24
    shijingshijing  
       Jun 22, 2018 via iPhone
    很好,世界上最好的语言马上要晋级为宇宙最好的语言,没有之一
    wdlth
        25
    wdlth  
       Jun 22, 2018
    头部是<?thp

    后缀名是.thp ?

    不知道会不会出现 Deno 那类 issue
    sagaxu
        26
    sagaxu  
       Jun 23, 2018 via Android
    @gouchaoer async 和 await 哪来的 callback hell ?
    gouchaoer2
        27
    gouchaoer2  
    OP
       Jun 23, 2018 via Android
    @sagaxu 一个方法 async 了,调用栈都 async 啥的,在简单的例子里似乎很简单,在实际业务里会很复杂
    sagaxu
        28
    sagaxu  
       Jun 23, 2018 via Android
    @gouchaoer2 async 并没有传染性,同步方法里调用异步方法,或者异步方法里调用同步方法,都可以。只有需要 await 异步结果时,才需要将调用方 mark 为 async。
    gouchaoer2
        29
    gouchaoer2  
    OP
       Jun 23, 2018 via Android
    sagaxu
        30
    sagaxu  
       Jun 23, 2018 via Android
    @gouchaoer2 不要人云亦云,自己试试才知道。所谓传染性,这个观点很 php。
    gouchaoer2
        31
    gouchaoer2  
    OP
       Jun 23, 2018 via Android
    @sagaxu 你的意思是要截断这种 async 传染可以不用 await 而是直接处理 async 返回的 promise,也就是回调的模式对么。。。像这样: https://segmentfault.com/a/1190000007535316,在某种程度上来说这也算是解决方案。。。。另外你的这种把讨论上升到语言的说法让我不舒服
    chenxytw
        32
    chenxytw  
       Jun 23, 2018
    支持 typed php
    icy37785
        33
    icy37785  
       Jun 23, 2018 via iPhone
    弱类型是 PHP 的优势,为什么要强类型。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4651 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 227ms · UTC 10:09 · PVG 18:09 · LAX 03:09 · JFK 06:09
    ♥ Do have faith in what you're doing.