从C#转向php

14

我很快就要学习php了,因为我需要它来做新工作。到目前为止,我一直在用C#编程。从C#的角度出发,有哪些奇怪或不同的地方应该知道吗?需要注意什么问题?


7
PHP与C#之间的关系就像夹克和汽车一样没有什么关联(它们非常不相关)。 - Falmarri
5
你有做过ASP.NET吗?如果没有,它们是完全不同的,因此无法用一个答案概括。 - Incognito
PHP和C#有很大的不同,但如果你已经做过ASP.NET,那么你应该能够在PHP中某种程度上运用MVC(以及其他设计模式和通用OOP原则)的知识。只需要选择一些框架,如Zend或Symfony,你就可以更轻松地从C#转移到PHP。这只是我的个人意见。还有一件事-获取一些好的IDE,如Eclipse(或者如果你选择使用Zend Framework,则是Zend Studio),它将为你节省很多时间。 - Richard Knop
8个回答

10

它们是不同的编程语言,但您可以使用PHP完成大多数C#所能做的事情。我认为它们在以下方面不同:

  • PHP比C#更简单。
  • C#是完全的面向对象语言,但PHP不是。
  • .NET类库非常庞大,您需要的一切都有了。如果您使用PHP,可以从官方PHP网站的pear或zend framework官方网站下载类。
  • 如果您使用C#创建Web应用程序,则使用ASP.NET MVC 2;如果使用PHP,则可以使用功能较弱的框架:Symfony、Zend Framework、Yii、Kohana。

在使用C#之后,您会觉得PHP的限制很大。

推荐阅读的书籍:

  • PHP 5专业版。
  • PHP设计模式。

当前版本的PHP是5.3。


5
C#是编译语言,而PHP是解释语言。 - PurplePilot
抱歉反驳一下,PHP是一种面向对象的语言。为什么你说它不是呢? 请给我展示一个你无法用你提到的任何一个框架解决的案例。 - udo
2
不,不是这样的。我说过:“C#是一种完全面向对象的语言,但PHP不是。” 我提到了“完全面向对象”。在PHP中,我们可以使用函数和类。但在C#中只能使用类。 - Dmytro Krasun
所有实体在C#中都是对象。 - Dmytro Krasun

5

3
学习PHP最重要的URL无疑是 http://www.php.net/manual/en/
使用C#和PHP的方式不同,使用PHP需要写更多的代码,但这会使您具有更多的控制权。语法本身非常相似,所以唯一会错过的是.NET框架。从强类型环境转换到弱类型有些奇怪,但您会逐渐熟悉。
与之前的评论不同,PHP可以是面向对象的(http://php.net/manual/en/language.oop5.php)。只需多阅读并尝试使用良好的实践,就像在使用C#编程时一样。

2

我能想到的是:

  • PHP是一种弱类型语言(您不必在使用变量、函数、对象之前声明)
  • 在PHP中,您需要在声明中使用“function”。
  • 在PHP中,您使用“implements”来实现接口(在C#中使用“:”)

1
你不实现类而是接口。类被扩展。 - Ondrej Slinták

1
你对PHP最奇怪的事情可能是:编程无需“windows”或“.net framework” :)
你可以使用记事本或任何编辑器,甚至在线编辑器,编写代码并保存。大功告成!
PHP在面向对象编程方面也很强大(现在的PHP 7更加酷炫)。
因此,对于主要用于Web应用程序的开发,PHP就足够了!
然而,如果你在C#方面有很强的背景,你应该继续使用它。
但仍然建议你给PHP留出10天时间,这样你才能意识到它的深度。

1

PHP是专门为制作网页而设计的,也被组合成尽可能简单易用,但没有过多考虑未来或过于依赖过去。

C#被设计成可以做任何事情,并在安装了.NET的任何地方运行。它被组合成尽可能完整,并从过去汲取更多经验。

PHP更容易上手。如果您已经学习了C#,不用担心;PHP对您来说应该很快。找到示例代码,以了解通常如何完成任务,收藏PHP手册并开始使用吧。


0

对于我来说,C# 的价值不在于语言本身,而更多地在于你可以用它构建的框架。 因此从这个意义上讲,PHP 和 C# 完全不同。

我曾经在 PHP 中工作了一段时间,然后转向了 C# 和 ASP.NET。 现在,没有人能够再把我拖回到 PHP 中去了。这并非个人原因,可能是因为我太依赖于 IDE 了,但我不会放弃 Visual Studio 的智能感知、C# 的强类型和其他很多我喜欢的 .NET 特性,即使为此换工作也在所不惜。


2
这个答案告诉你从C#转到PHP有什么不同?为什么C#与PHP不同,因为它有一个框架?PHP有许多框架,但你不能真正使用一个框架而不参考语言。喜欢VS和Intellisense与从PHP转到C#有什么关系? - PurplePilot
有许多 PHP 框架 - Zend、Symfony 等。 - Richard Knop
2
@PurplePilot,我认为我的答案只是在说“在进入PHP领域之前三思”。我知道有很多优秀的PHP开发人员,但我认为与您已经有经验的语言/框架相比,工作机会会更好。 - Regent
@Richard Knop,您会推荐哪一个给初学者? - Regent
2
@Regent 我不想推荐任何框架,因为我可能有偏见(我已经使用ZF很长时间了)。我只想说选择一个没有向后兼容性的PHP 4框架是一件好事,这就淘汰了CI(没有冒犯CI的意思,但要支持PHP 4,你必须牺牲太多)。个人认为ZF和Symfony是最好的两个PHP框架。 - Richard Knop
显示剩余2条评论

0

我现在已经使用php超过10年了,当C#上市时就学会了它,并自那以后一直在使用。

我认为PHP是一种非常强大的语言,如果程序员有组织性和严谨性,它可以非常好地被结构化。毋庸置疑,PHP并不像框架一样方便(除非您实现了一个)。 C#与.NET框架为您做了很多事情,而在PHP中,您通常需要自己编写类。

互联网上有巨大的类库,几乎找到您想要的所有东西,但是与.NET高度复杂的程序集相比,实现它们有时更具挑战性。

我认为PHP在所有UNIX平台上都有巨大的市场,但是Ruby on Rails作为新兴候选者出现,与C#具有更多的共同点(我认为)。

为什么你决定选择PHP?


有许多 PHP 框架——Zend、Symfony 等。 - Richard Knop
我知道。但是我认为对于有更多C#经验的人来说,它比Ruby on Rails更难消化。不过这只是我的个人意见。 - G Berdal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接