[发泄贴] 原来 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?^_^

7764 次点击
所在节点    PHP
76 条回复
jsonline
2015-02-21 23:55:37 +08:00
PHP是最好的语言。(好到我学不会)
结帖。
gkuchan
2015-02-21 23:56:08 +08:00
本文的意义是秀自己对PHP的无知?
raincious
2015-02-22 00:10:59 +08:00
不知道其他人怎么决定目标版本的,我自己目前将PHP自己的目标版本定为5.4,因为很多内核apt-get/yum拿不到最新的PHP 5.6哪怕5.5。

5.2.9版本太旧了。如果你想使用新的语言特性,就不要使用那些低端的免费空间。(开个低端VPS随便也能闹得很欢)。

另外,要针对接口编程,而不是针对实现编程。而且其实你其实需要在了解MySQLi之后为再为他封装操作类/函数,而不是设想好一个功能然后想方设法的向功能需求上靠近。

关于“Fatal Error: Call-time pass-by-reference has been deprecated”这条提示我太喜欢了,有利于接口规范化。试想如果你的程序里一会儿是reference,一会儿不是,那么后期维护要麻烦死了。
shiny
2015-02-22 00:15:53 +08:00
Python 2/3 才叫崩溃
目前用 PHP5.4
viko16
2015-02-22 00:16:47 +08:00
不要对 5.3 以下的进行妥协,平时使用 5.4 ,尽量向 5.5/5.6 靠拢,心里憧憬着 7

我自己是这样的 ^
yangff
2015-02-22 00:17:46 +08:00
直接返回一个array不就行了。。
Actrace
2015-02-22 00:18:55 +08:00
服务器是最新版本php5.6.5
kn007
2015-02-22 00:23:52 +08:00
5.5.20记得是。。准备升到5.6了。。。正在更新函数
msxcms
2015-02-22 00:28:38 +08:00
难道希望一个脚本语言6年不变?
xuhaoyangx
2015-02-22 00:38:49 +08:00
php5.6+opcache值得一试。
还是跟着新版走比较好。
sumhat
2015-02-22 00:45:55 +08:00
楼主要稳定学 Java 吧,从 Java 5 到 Java 7 基本没有变 -_- (Java 5 是 10 多年前的事情了,去年刚出了 Java 8)
arachide
2015-02-22 00:50:26 +08:00
deprecated 多? cocoaer飘过
bombless
2015-02-22 00:52:37 +08:00
mysqli的这套绑定我以前用的时候的确感觉不太稳定

不知道后续版本怎么样了。我用的时候5.5还没出来呢
mhycy
2015-02-22 00:57:40 +08:00
后端服务器5.2 前端服务器5.3 本地5.2
mhycy
2015-02-22 00:59:12 +08:00
补充:
我现在都是随便给PDO打个包就直接用了。。。
(主要是定义一些函数用于参数化查询)
oott123
2015-02-22 01:29:49 +08:00
我觉得楼主在用写 c 的心态写 php
每门语言有自己的哲学…php 的 call user func 那函数反正我能不用就不用233
Septembers
2015-02-22 01:46:33 +08:00
跟随PHP当前最新稳定版升级
wezzard
2015-02-22 02:27:02 +08:00
一般用 RoR,永遠用最新的穩定版。
kookxiang
2015-02-22 02:58:33 +08:00
故意用[]‘表示数组,气死5.4以下用户
msg7086
2015-02-22 04:15:38 +08:00
为什么不用adodb之类的抽象层呢

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

https://www.v2ex.com/t/172108

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

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

© 2021 V2EX