[发泄贴] 原来 PHP 每一个子版本都是不同的语言……

2015-02-21 23:30:52 +08:00
 schezuk

PHP初学,把自己的代码部署到了一个叫做id666的免费空间,PHP版本是5.2.9
因为不想关心错误代码,于是自己封装了一个mysqli函数(我不是很懂PHP下类使用以及PDO……)
叫做safe_query()(见libMysqli.php,欢迎抓虫)


因为我要同时return整形值affected_rows和返回的数组
(update等sql语句不返回数据,所以affected_rows有必要)
因此我把查询后要返回的数组做引用传值safe_query($query, &$result, $bind_params = NULL)

然后他们告诉我$stmt->bind_param()第一个参数要传值,剩下的要传引用
我按要求封了一个array,第一个元素byVal,剩下的byRef,用call_user_func_array()传过去


结果他们又告诉我call_user_func_array()5.2版要传值,5.3版要传引用。
于是我还得作区分,抄了一个refValues($arr)按版本区分这个数组怎么传

我琢磨着这下大概可以兼容全部PHP5了吧~~~~


一个月以后,我又写了另一个项目,电脑重装之后顺便安了个WAMP(PHP5.5),打算本地调试
然后他喵的告诉我Fatal Error: Call-time pass-by-reference has been deprecated!!!!

DEPRECATED!!!!

你妹!

搜索了一下,说是allow_call_time_pass_reference = On可破

BULLSH***************T

PHP 5.4.0就已经REMOVED!一点渣都不剩了!

你叫我怎么版本兼容???你叫我怎么版本兼容???


谁能告诉我PHP这些版本到底是不是一个语言?!为什么朝三暮四这么严重?!翻脸不认人么?


还有json_encode,直到5.4.0才支持JSON_UNESCAPED_SLASHESJSON_UNESCAPED_UNICODE么?
满脸的\uHHHH,你知不知道你浪费了一倍空间?!居然要自己用回调pack每个匹配,简直酷炫!


以上纯属发泄,一开始用6年前版本的PHP就是我的不对。

说这么多就是想问问大家,目前大家的机器主要跑什么版本的PHP?^_^

7822 次点击
所在节点    PHP
76 条回复
wdy1184
2015-02-22 19:47:27 +08:00
PHP5.3以下就不要用了。
neoblackcap
2015-02-22 20:23:25 +08:00
@shiny 我理解你说python的版本兼容跟php有差距,但是我只是觉得Python的版本兼容并没有你口中所说的那么严重,至少我没有遇到过因为Python3跟2而出现很大的兼容问题,可能也由于我都是写新代码的缘故吧。
quericy
2015-02-22 20:40:56 +08:00
主要还是用PHP 5.3和5.4的居多吧
zhicheng
2015-02-22 21:42:20 +08:00
我用的Python第三方依赖绝大多数都是同时兼任 2 和 3 的,Python 官方也同时维护两个版本,且在 2 上提供兼容 3 的方法,编程语言和标准函数库这种东西不怕大改,就怕每个小版本改来改去,改来改去,改来改去,改来改去。换我肯定不用了。。。
opelnic
2015-02-22 22:03:43 +08:00
就当一门新的语言学学吧。
服务器上面同时有5.2 5.3 5.4 5.5。有些老程序不能很好的和新版玩耍。
invite
2015-02-22 22:04:47 +08:00
我从PHP到Python了,哈哈哈哈哈哈哈哈。

PHP那帮人,思想太多,太杂,试图统一宇宙。
c2q1989
2015-02-23 12:42:36 +08:00
可以淘汰PHP5.4以下的版本了,毕竟网络编程发展太快,又不像C/C++这种面向机器的语言
jacob
2015-02-23 16:08:56 +08:00
@oott123 lz为什么不学下oo呢,我反正觉得oo很方便,重要的是我写得爽,效率不考虑,以我的水平还不需要省那点苍蝇腿。

虽然不知道lz在写什么东西,为毛要用call_user_func那类的函数,那些劳什子本来就有很多兼容问题,否则各框架和类库也不会严重依赖php版本。

哪个语言都有些G点,我的原则是绕着走。
oott123
2015-02-23 17:03:42 +08:00
@jacob 我不是楼主。
Mars
2015-02-24 03:50:03 +08:00
5.3.29....产生时不要用太新版本 ,太新的容易出问题。经验之谈。。。
hitsmaxft
2015-02-24 09:48:45 +08:00
5.2到5.3改变太多了,应该直接升大版本号才容易理解

5.4,5.5 改动相对小。虽然也是存在兼容性问题
Tuccuay
2015-02-24 10:18:49 +08:00
Tuccuay
2015-02-24 10:21:36 +08:00
@raincious 手机拿在手上过一会儿看发现创建了一条回复…抱歉
lincanbin
2015-02-24 13:59:20 +08:00
http://php.net/manual/en/migration53.php

跨版本兼容要通过if和造轮子实现
另外php 5.2到现在五六年了吧,贪便宜用免费空间也没办法
picasso250
2015-03-05 15:43:42 +08:00
楼主,你去看看文档先好不好。楼上的文档你好好看看。要不然你就别用PHP了,c更适合你。
yokle
2015-03-06 13:47:12 +08:00
楼主在秀无知么?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/172108

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX