我知道这听起来像是个吹毛求疵的问题,但让我解释一下我来自哪里。
大学毕业后,我在一家PHP商店找到了一份工作。我在那里工作了一年半,我认为我已经学到了所有关于编程的知识。
然后,我在一家相当大的公司找到了一份单人内部开发工作室的工作,那里所有的工作都是在C#上进行的。在我对这个职位的承诺中,我开始阅读大量的博客和书籍,并很快意识到我认为自己无所不知的想法是多么错误。我学到了单元测试,依赖注入和装饰器模式,松耦合的设计原则,关于组合优先于继承的争论,等等--我仍然在吸收它们。不用说,我的编程风格在过去的一年里完全改变了。
现在,我发现自己拿起了一个php项目,为一个朋友的初创公司做一些编码工作,与用C#编程相比,我感到完全受到了约束。类作用域中的所有变量都必须通过附加'$this->‘来引用,这真的让我很困扰。令我恼火的是,我尝试过的IDE都没有很好的智能感知能力,而且我的测试单元方法必须以单词“SimpleTest”开头。动态类型使我无法隐式地指定方法所需的参数类型,而且您必须编写switch语句来执行方法重载,这让我抓狂。我不能忍受你不能有嵌套的命名空间,并且必须使用::运算符来调用基类的构造函数。
现在我不打算开始关于PHP和C#的争论,我的意思是,我确信有一些PHP特性我不知道或者不知道,但还不能正确使用。我置身于我的C#世界,看不到玻璃碗外面的东西。
所以我在问,你最喜欢的PHP特性是什么?在.Net语言中,您可以做哪些不能做或更难做的事情?
发布于 2008-09-14 17:32:26
Documentation.documentation得到了我的投票我还没有遇到过一种编程语言的更全面的在线文档-所有其他我必须从各种网站和手册页拼凑而成的文档。
发布于 2008-09-15 16:33:29
阵列。从这个问题的答案来看,我认为人们并没有完全意识到PHP中的数组是多么简单和有用。PHP数组同时充当列表、映射、堆栈和通用数据结构。数组是在语言核心中实现的,并且到处都可以使用,这导致了良好的CPU缓存局部性。Perl和Python都对列表和映射使用不同的语言构造,导致更多的复制和潜在的混乱转换。
发布于 2008-09-14 17:30:13
流处理程序允许您使用逻辑扩展"FileSystem“,据我所知,在大多数其他语言中很难做到这一点。
例如,使用MS-Excel Stream handler,您可以按以下方式创建MS Excel文件:
$fp = fopen("xlsfile://tmp/test.xls", "wb");
if (!is_resource($fp)) {
die("Cannot open excel file");
}
$data= array(
array("Name" => "Bob Loblaw", "Age" => 50),
array("Name" => "Popo Jijo", "Age" => 75),
array("Name" => "Tiny Tim", "Age" => 90)
);
fwrite($fp, serialize($data));
fclose($fp);https://stackoverflow.com/questions/61401
复制相似问题