作者HuangJC (吹笛牧童)
看板PHP
标题[心得] 学了一阵子 PHP 之後
时间Wed Jul 23 21:08:55 2008
本来我是个 C Programmer
学 PHP 是为了写网页
从前,即使是 C,也是会摆荡在 VC & BCB 之间
虽然面试工作时主管说得满嘴泡沫
但我知道这两者互擅胜场,我选择什麽并不是真的因为它比较好
而是因为当其他同事都用这个,你就得用,会比较方便
有啦,如果是资料库专门的公司,那麽选 BCB 是有点道理
因为 BCB 很自豪的说它的资料库模组有超越微软(几年前的事,也许微软追上了)
那时真的是视觉物件连结资料库,拉一拉就写出程式
而 BCB 最劣势的地方,就是 Windows 是微软的
整个 Message Loop 本来就是微软架的,SDK 也是微软的
於是新元件出现时,VC 上都很好用
BCB 用元件很爽,但写元件很累
而不会写元件的话,就想回到 VC 的世界 XD
那麽这次,我可不可以用 C 写动态网页?
用 PHP 是因为它真的比较好,还是因为同事都用了,我不如也跟进会比较方便?
基本上,C 很优秀,所以一堆语言都可称为 C Like
所以 C 的优点在 PHP 上还是可以找到部份
但不用改变 function parameter 的架构真让人很'爽'
function F1(int a) => function F1(float a) => function F1(Array A)
以上三个 F1,是我改写程式时,一直想变化的 head
而在 PHP,它都是一样的,就是
function F1($a)
那或许我就可以定位出,compile 语言是最终产品架构稳定,速度快
而 Script 语言则是弹性强大
(大到没执行时,根本无法先检查型别,还有我习惯全域搜寻指令名,变数名
这样的惯用招数全都嗝屁了;必需建立新的学习方法
幸好我学过 basic (非 IDE 的版本)
培养出慢慢 dump 变数的耐心...)
毕竟
class C2:public C1
{
};
以上语法,你不先交代好 base class C1 是什麽,是不可以交成品(EXE)出来的
可是 PHP 可以
可以的代价就是 run time compile,你不能交出 EXE,你必需把 PHP 整个交出来
那 C1 到底是什麽,临时抽换也可以
在学了 PhpBB 後,我看到了示范
资料库类别可以继续新增,就如我说的 base class 还在成长
以上是老生常谈,我也见过别人提很多次了
也许因为网页是一面一面的东西,又常修改
所以 PHP 的易修改动态特性就胜出了
在看了 PHP 一阵子後发觉,它不只 C Like,它还很多 Perl Compatible
所以我知道,我必需去学 Perl 了
不然文件里始终缺了一块,它就是以为我有 Perl 基础..(才怪,我没学过)
$fl_array = preg_grep("/^(\d+)?\.\d+$/", $array);
我只是想看懂这是什麽 *_*
也许学会 Perl 後,
.htaccess 转址的代换
linux 命令列下 grep 的语法
这些就都会了?
当然我知道,Perl 板出门右转
只是我又想问这个问题
它单纯是因为某领域用的人多,所以我学了和他们合作方便
还是有特别胜出的地方?
(还有个大绝,叫进化论;纯粹是一个晚出的当然包含了所有前辈的优点)
记得不久前,我必需写一个 DOS 下的批次档
当时因为档名处理的问题搞不定
请教同事,同事竟然说 "写一个 C 产生 *.bat,再去执行它"
太恐怖了,程式产生程式
我不是不会写,但我知道有多麻烦
debug 是无尽的试误
那时我已经学 PHP 了
直觉 PHP 很好搞定它
可是被另一个同事挡下来
"你想在别人电脑先安装 PHP,然後再跑你的 PHP 批次档?
可以纯用 DOS 批次指令的事别这麽麻烦"
後来我终於纯用 DOS 批次写出来了..累
CString 怎麽不存在 DOS 下呢,呜..
PHP? 它有够用的字串指令,也可以呼叫 DOS 下的档案,或者 DIR 等指令
有它我真的很好写批次档
那..现在的问题是
Why Perl?
我知道同事在 linux 下写了一堆 Perl 批次档
为什麽选它?
如果离题太远,我只好真的去 Perl 板问了
不过除了板性,有更多是'人'的问题
在板上发问,讨论也有一阵子了
我想我这个'人'的特性及困扰,大家会知道一些
(就是也算认真,不过能力极限时需要帮助,etc..)
所以我先在这边问
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.219.65.16
※ 编辑: HuangJC 来自: 61.219.65.16 (07/23 21:12)
1F:→ uftea :@@ 那东西是REGEX..是标准化的东西..跟学perl无关.. 07/23 21:29
3F:推 aquarianboy :php也可以写成可执行的shell script.. :) 07/23 21:33
4F:→ uftea :帮楼上注解.. php-cli 07/23 21:38
Yes,我有装
所以才觉得干麻写批次档要改用 Perl
但很可能原因是,Perl 一般有装,PHP 一般没装?
目前我 linux 是 Ubuntu
但如果去租网空,对方都帮忙 RedHat
同事一直提醒我一件事:两种 Linux Pack 不同,RedHat 上有些东西就不再那麽好架了
(如果 Ubuntu 是後来居上,那网空公司怎麽不进化到架 Ubuntu 呢? :P)
5F:→ starjou :在 Linux 下写了两年多的全职 PHP, 一点也不会 perl 07/23 21:51
看来答案真的只有一个
就是惯性
同事已经惯性在 Perl 批次档上,就不去用 PHP 了
话说我以前都用 C 在写档案管理
但没专用指令,轮子要从头打造起
比如 copy C:*.* D:
这东西好玩了,C 怎麽写?
forloop 整个子目录,且是 recursive 的
开档,bin 读取,写档
不是不行,只是不现成
如果有其他同事支援的大量函式库
那我当然觉得用 C 取代 dos 批次档没问题 :P
还很方便 XD
※ 编辑: HuangJC 来自: 61.219.65.16 (07/23 22:00)
6F:推 albb0920 :基本上 Windows 复杂的给 VB Script 简单的给bat 07/26 14:38