V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
richangfan
V2EX  ›  程序员

PHP5 太强了

  •  
  •   richangfan · 2021-12-18 23:40:13 +08:00 · 5746 次点击
    这是一个创建于 857 天前的主题,其中的信息可能已经有所发展或是发生改变。

    接手了一个老项目,随便打开一个文件就是一堆报错警告,使用未定义变量,创建未定义类的对象,把非静态方法当静态方法用,创建对象不给构造方法传参,模拟一次登入请求就能输出错误日志,看得我目瞪口呆。

    这样的代码也能在线上跑起来,支持一家公司的业务发展,PHP5 真是太强了。

    24 条回复    2021-12-20 10:20:48 +08:00
    wukongkong
        1
    wukongkong  
       2021-12-18 23:42:56 +08:00
    以前很多代码都这样吧~

    如果没有 ts ,js 也是一样的处境,特别是一些新手的代码。

    现在带项目,不写 ts ,很多东西完全没法控制。

    代码 review 太痛苦了,给自己找不自在。
    zehua
        2
    zehua  
       2021-12-18 23:44:39 +08:00 via iPhone
    能跑就行
    youthfire
        3
    youthfire  
       2021-12-18 23:53:04 +08:00 via iPhone   ❤️ 2
    其实很多远古程序的实现,尽管从现在看毫无规范性可言,但往往充满了很多智慧,技术的实现借助于各种“旁门左道”,最妖的是稳定无 bug ,因为已经被打磨太多次了
    gstqc
        4
    gstqc  
       2021-12-19 00:12:46 +08:00   ❤️ 3
    代码和前开发者都能跑,看起来不错了
    WriteCloser
        5
    WriteCloser  
       2021-12-19 00:20:58 +08:00   ❤️ 1
    PHP 哪有这多心智负担,错误级别调高一点眼不见心不烦
    qeqv
        6
    qeqv  
       2021-12-19 02:24:51 +08:00
    生产环境关掉报错呗,开发环境屏蔽掉 E_NOTICE E_DEPRECATED E_WARNING
    WebKit
        7
    WebKit  
       2021-12-19 02:50:06 +08:00 via Android
    印象里 php 难道不是一个动态类型的语言吗?跟 js 一样。变量随用随申请吗?
    感觉你这跟 2021 年指责当年诺基亚死磕 wp 一样
    dcoder
        8
    dcoder  
       2021-12-19 03:42:02 +08:00
    再怎么烂的东西,只要肯堆人堆时间反复测试修理,总能在 prod 上跑起来.
    接手这种代码,就尽量不要改... LOL
    Kylin30
        9
    Kylin30  
       2021-12-19 04:19:26 +08:00
    为了过个好年,建议申请重构。
    emeab
        10
    emeab  
       2021-12-19 04:25:36 +08:00
    @Kylin30 申请重构才不能过好年. 出啥问题都让你背锅.XD
    qeqv
        11
    qeqv  
       2021-12-19 08:05:16 +08:00
    @Kylin30 老项目最佳处理方式就是旧代码一个字也别动
    MengiNo
        12
    MengiNo  
       2021-12-19 08:18:46 +08:00 via Android
    PHP 就是这样,乱写都可以。有经验的可以给你写的胡里花哨,甚至写成 Java ,没经验的搞个什么 lamp 鼠标点点就能跑。所以说 PHP 开发就是快,不在乎这些有的没的,就算业务模糊也可以很 hack 的去魔改减少改动。
    lyz1990
        13
    lyz1990  
       2021-12-19 08:57:43 +08:00 via Android
    能支撑业务挣到钱才是关键
    loginv2
        14
    loginv2  
       2021-12-19 09:18:12 +08:00
    最强的是这个代码迁移到 php7 大部分是不需要改动的写的好的项目甚至不需要改
    lifeintools
        15
    lifeintools  
       2021-12-19 09:21:54 +08:00
    PHP5 时代 基本就是能跑就行~ 后面慢慢越来越严格 框架也越来越规范。。逐渐 java 化
    512357301
        16
    512357301  
       2021-12-19 09:40:52 +08:00 via Android
    php 变量不是可以直接赋值的吗,需要定义吗,js 我知道有 var/let 可以定义变量,PHP 有吗或者说需要吗
    richangfan
        17
    richangfan  
    OP
       2021-12-19 09:46:50 +08:00
    @WebKit 他这个使用未定义变量错误是调用函数时的参数是一个未定义变量
    maomaosang
        18
    maomaosang  
       2021-12-19 09:56:12 +08:00 via Android
    以前老版本的 dedecms (大概是 5.1 ?),你如果把 notice 报错打开,会发现加载个页面满屏都是报错。但是不妨碍它成为中国站点数最多的开源 cms 。
    以前很多 phper 的做法就是关掉 notice 来编程,他们以为语言特性就是这样(比如可以动态调用静态方法)的。我还遇到过程序员振振有词跟我说可以直接调用 array 中不存在的 key ,“把 notice 关掉就可以了”。
    code4you
        19
    code4you  
       2021-12-19 10:46:50 +08:00
    能让你挣钱的语言 就是好语言 😁

    PHP5 算啥 用 asp 、vb 挣钱的都有😏
    MengiNo
        20
    MengiNo  
       2021-12-19 12:32:30 +08:00 via iPhone
    @512357301 PHP 反而把 var 这个关键字 废弃了 2333
    MrBrother
        21
    MrBrother  
       2021-12-19 14:24:35 +08:00 via iPhone
    @maomaosang

    😂 这个情景看笑了
    DOLLOR
        22
    DOLLOR  
       2021-12-19 18:39:59 +08:00
    @MengiNo 其实 js 在 es6 后也把 var 淘汰了,倒是 java 开始用起 var 来了。
    moen
        23
    moen  
       2021-12-20 01:16:21 +08:00
    @DOLLOR 这两个不是一码事
    learningman
        24
    learningman  
       2021-12-20 10:20:48 +08:00
    @DOLLOR #21 java 的 var 是 C++的 auto ,js 淘汰 var 是因为全局变量危害太大,也没说不让你用
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5382 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 05:53 · PVG 13:53 · LAX 22:53 · JFK 01:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.