[心得] 用 [] 取代 array()
網誌好讀版:http://blog.hsatac.net/?p=444
PHP 的 array() 大家都是詬病已久了,總是在想,
要是能像其他語言一樣,用個中括號括起來就好那該有多好。
昨天剛好看到鐵神分享的這篇 PHP Hacking
(http://www.xarg.org/2011/06/php-hacking/) ,
作者把 PHP 修改了許多小地方,除了上述的新 array 語法外
,還有許多新增函式和效能調校,感覺真的很不錯。
不過我最想要的只有 array 這個語法,而且不想被作者的版本
綁死,於是我決定下載他的程式碼來研究一下如何修改。結果發
現,只要改一行,就可以擁有這個功能!
以下紀錄一下我修改成功的過程,我開了一台乾淨的
Ubuntu 11.04 vm 出來測試。
首先抓好 PHP 5.3.6 的原始碼生肉,找到
Zend/zend_language_parser.y 這個檔案:
找到
| T_ARRAY '(' array_pair_list ')' { $$ = $3; }
這行,在下面多加一行
| '[' array_pair_list ']' { $$ = $2; }
接著安裝一些必要的元件:
sudo apt-get install apache
sudo apt-get install apache2-prefork-dev #要編譯成 libphp5.so 需要裝這個
sudo apt-get install libxml2-dev
sudo apt-get install re2c
接著還要安裝 bison ,apt-get 裝的 bison 版本太舊不合用,
可以自己去抓 2.3 版來編譯
(http://www.gnu.org/software/bison/)
bison 需要 m4, 所以編譯過程中有需要的話就 apt-get install m4 吧。
以上準備工作都做好後,就可以開始編譯 PHP 啦。
./configure --prefix=/usr/local/lib/php5.3.6.infusion /
--with-apxs2=/usr/bin/apxs2
make && sudo make install
記得在 configure 的過程要注意有沒抓到 bison ,這是最重要的,如果沒抓到的話這個
修改是不會有作用的。
都編完以後趕快
a2enmod php5
sudo apachectl restart
來試試看有沒有成功吧!
我編完以後,8245個測試都跑過了,應該是沒問題,enjoy it!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 221.169.252.14
推
06/11 23:51, , 1F
06/11 23:51, 1F
→
06/12 00:00, , 2F
06/12 00:00, 2F
推
06/12 00:49, , 3F
06/12 00:49, 3F
推
06/12 00:53, , 4F
06/12 00:53, 4F
推
06/12 01:32, , 5F
06/12 01:32, 5F
→
06/12 02:01, , 6F
06/12 02:01, 6F
→
06/12 02:42, , 7F
06/12 02:42, 7F
→
06/12 08:38, , 8F
06/12 08:38, 8F
→
06/12 08:39, , 9F
06/12 08:39, 9F
→
06/12 08:39, , 10F
06/12 08:39, 10F
推
06/12 09:44, , 11F
06/12 09:44, 11F
推
06/12 09:46, , 12F
06/12 09:46, 12F
→
06/12 10:12, , 13F
06/12 10:12, 13F
推
06/12 10:19, , 14F
06/12 10:19, 14F
→
06/12 10:25, , 15F
06/12 10:25, 15F
→
06/12 10:53, , 16F
06/12 10:53, 16F
推
06/12 20:14, , 17F
06/12 20:14, 17F
→
06/13 02:47, , 18F
06/13 02:47, 18F
→
06/13 02:47, , 19F
06/13 02:47, 19F
→
06/13 02:47, , 20F
06/13 02:47, 20F
→
06/14 17:32, , 21F
06/14 17:32, 21F
→
06/14 19:06, , 22F
06/14 19:06, 22F
→
06/14 20:09, , 23F
06/14 20:09, 23F
→
06/14 21:24, , 24F
06/14 21:24, 24F
→
06/14 23:21, , 25F
06/14 23:21, 25F
→
06/15 08:20, , 26F
06/15 08:20, 26F
→
06/15 15:46, , 27F
06/15 15:46, 27F
推
03/03 18:44, , 28F
03/03 18:44, 28F
推
03/04 09:12, , 29F
03/04 09:12, 29F
推
03/05 12:57, , 30F
03/05 12:57, 30F
推
03/05 23:41, , 31F
03/05 23:41, 31F
推
03/08 11:29, , 32F
03/08 11:29, 32F
PHP 近期熱門文章
PTT數位生活區 即時熱門文章