PHP的隐藏功能?

我知道这听起来像是一个指责问题,但让我解释我来自哪里。

大学毕业后,我在一家PHP商店找到了一份工作。 我在那里工作了一年半,认为我已经了解了所有有关编程的知识。

然后,我在一家大公司开展了一个单人内部开发工作,所有工作都在C#中进行。 在我对这个职位的承诺中,我开始阅读大量的博客和书籍,并很快意识到我以为我知道所有事情都是错误的。 我学习了单元测试,依赖注入和装饰器模式,松散耦合的设计原理,继承争论的构成等等等等 - 我仍然非常喜欢它。 不用说我的编程风格在去年完全改变了。

现在我发现自己正在为一个朋友的启动编写一个php项目,并且我觉得完全受到限制,而不是用C#编程。 它真的困扰我,所有类变量的变量必须通过追加'$ this->'来引用。 它让我很烦恼,我尝试过的所有IDE都没有非常好的智能感知,并且我的SimpleTest单元测试方法必须以“测试”这个词开头。 它令我发狂,动态类型让我无法隐式指定方法期望的参数类型,并且您必须编写switch语句来执行方法重载。 我无法忍受你不能拥有嵌套的命名空间,而必须使用::运算符来调用基类的构造函数。

现在我不打算开始一个PHP和C#的辩论,而是我的意思是说,我确信有一些我不知道或知道的PHP功能,但未能正确使用。 我置身于C#宇宙中,无法在玻璃碗外看到。

所以我问,你最喜欢的PHP功能是什么? 你可以做什么,你不能或者在.Net语言中更难?


文档 。 文件得到我的投票。 我还没有遇到过编程语言的更彻底的在线文档 - 我必须从各种网站和手册页拼凑出一切。


数组 。 从这个问题的答案来看,我不认为人们完全理解PHP中的数组是多么容易和有用。 PHP数组同时充当列表,地图,堆栈和通用数据结构。 数组在语言核心中实现,并在整个地方使用,从而获得良好的CPU缓存局部性。 Perl和Python都为列表和地图使用单独的语言结构,导致更多的复制和潜在的令人困惑的转换。


流处理程序允许您使用逻辑来扩展“文件系统”,据我所知在大多数其他语言中相当困难。

例如,使用MS-Excel Stream处理程序,您可以通过以下方式创建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);
链接地址: http://www.djcxy.com/p/52957.html

上一篇: Hidden Features of PHP?

下一篇: Hidden features of CSS