Questions tagged «php»

有关PHP(一种广泛用于通用脚本语言,特别适合于Web开发)的问题。

16
学习许多编程语言是否有害?
我从9年级开始用BASIC进行编程。通过编写简单的程序进行加,减和打印,我学到了一些BASIC。然后,我去了大学,并学习了计算机信息和系统工程。在第一年,我学习了C语言,并且对它有很好的命令。 接下来,我在第二年学习了C ++。它只是教会了我一些面向对象的知识。现在我正在做PHP(以及HTML)。我还没有掌握C ++,BASIC或PHP。我现在正计划转向移动开发。但是我觉得我并没有涵盖所学语言的所有内容。 真的有关系吗?
37 php  c++  c  basic 

2
PHP:什么时候使用数组,什么时候将对象用于大多数数据存储的代码构造?
PHP是一种混合范式语言,允许使用和返回非对象数据类型,例如数组。我提出一个问题,试图在确定在特定情况下使用哪种编程构造时,阐明一些选择数组还是对象的准则。 这实际上是一个有关使用PHP语言构造对数据进行编码的方法以及何时更可能为了数据传递目的而选择另一种方法(即面向服务的体系结构或Web服务)的问题。 例 假设您的商品类型由{cost,name,part_number,item_count}组成。您的程序要求显示几种此类项目,并决定使用数组作为外部容器来保存每种项目类型。[您也可以使用PHP的ArrayObjectOO范例,但是我的问题不是关于那个(外部)数组的]。我的问题是关于如何对项目类型数据进行编码,以及使用哪种范式。PHP允许您使用PHP Native Arrays或PHP Objects。 我可以通过两种方式对此类数据进行编码,如下所示: //PHP's associative arrays: $ret = array( 0 => array( 'cost' => 10.00, 'name' => 'item1', 'part_number' => 'zyz-100', 'item_count' => 15 ), 1 => array( 'cost' => 34.00, 'name' => 'item2', 'part_number' => 'abc-230', 'item_count' => 42 ), ); 与 //here ItemType …

7
是否需要保留对简单(自包含)功能的测试?
考虑一下: public function polynominal($a, $b, $c, $d) { return $a * pow($x, 3) + $b * pow($x, 2) + $c * $x + $d; } 假设您为上述功能编写了各种测试,并向自己和其他人证明“它可以工作”。 为什么不删除这些测试,然后过上幸福的生活呢?我的观点是,某些功能在被证明可以正常工作后,无需对其进行连续测试。我正在寻找状态的对立点,是的,这些功能仍然需要测试,因为:...或者是的,这些功能不需要进行测试...


3
如何构建完全模块化的Web应用程序
在接下来的几个月中,我们将开始一个项目,我们将采用为客户端(v1)构建的系统,并从头开始对其进行重建。v2的目标是使其模块化,以便该特定客户端拥有自己使用的一组模块,然后另一个客户端可以完全使用另一组模块。这里的窍门是,公司A可能具有一系列结帐和用户模块,这些模块会更改系统的工作方式。公司B可能会遵循标准的结帐程序,但会自定义产品的浏览方式。 当您要从头开始构建一个要Core在所有客户端之间共享的应用程序,同时又要为要专门针对客户端修改的内容保持灵活性时,应用程序体系结构有哪些好的方法? 我已经看过CodeIgniter的钩子,并且认为这不是一个好的解决方案,因为我们最终可能会有250个钩子,但仍然不够灵活。还有哪些其他解决方案?理想情况下,我们不需要在沙子上画一条线。

6
为什么在课堂上使用“最终”真的很糟糕?
我正在重构PHP OOP旧版网站。 我很想开始在“ make it explicit that the class is currently not extended by anything” 类上使用“最终”。如果我去上课,这可能会节省很多时间,我想知道是否可以重命名/删除/修改protected属性或方法。如果我真的想扩展一个类,我可以删除final关键字来解锁它以进行扩展。 即,如果我参加的班级没有子班,我可以通过将班级标记为最终班来记录该知识。下次访问它时,我不必重新搜索代码库以查看它是否具有子代。从而节省了重构期间的时间。 这似乎是一个明智的节省时间的主意。。。。但是我经常读到,只有在极少数/特殊的场合下才应该使类“最终化”。 也许它搞砸了模拟对象的创建,或者有其他我没有想到的副作用。 我想念什么?

13
职业建议:继续使用PHP或以其他方式(.Net?)开始新的职业[关闭]
我计划在6到12个月内搬到纽约,所以我不得不寻找新工作。当我计划在另一个城市开始我的生活时,也可能是考虑职业变化的好时机。 我发现了关于PHP,.Net和Java的许多不同观点,这不是这里的主题。我不想就哪种语言更好展开新的斗争。成为一名软件开发人员,了解编程语言并不是最重要的事情。要成为一名真正的优秀开发人员,您需要了解OOP,设计模式,测试...,而语言只是使事情成真的工具。 回到我的问题。我在IT方面有不同的经验-担任IT支持人员1年(Windows管理和支持),大约2年嵌入式编程经验(VB.Net 2005),最近2年我一直在使用PHP / MySQL。我曾与Magento网上商店合作,协助Symfony进行了一些项目,并修改了一些Drupal网站。 我主要关注的问题如下: 我是否会继续提高自己的PHP技能,例如开始学习一些主要的PHP框架,例如Zend,Symfony或获得一些PHP认证。 还是开始学习.NET或Java。我对.NET更为熟悉,所以如果选择介于.NET和Java之间(或者您可以说服我选择Java :),我可能会选择它。 在职业方面,我不知道什么是最佳选择。学习新的框架和语言要花费更多的时间,然后才能提高我现有的PHP技能。但是,使用.NET,您将有很多可能性(Windows 7 Phone开发,Silverlight,WPF),并且可能有更大的机会找到更好的工作。 根据我的研究,至少与.NET相比,PHP职位的薪水较低(如果我错了,请纠正我)。但是,如果我现在开始使用.NET,我只是一个初学者,我的薪水会很低。我需要至少2年以上使用某种语言的经验,才能尝试找到一些薪水高于纽约50-60k美元的工作。在接下来的2-3年中,我的主要目标是设法找到$ 60-80k的工作。不要误会我的意思,我不仅在追逐金钱,而且在您尝试建立家庭时,金钱是重要的因素。 我今年27岁,我觉得我的职业生涯没有太多错误决定的余地,因此任何建议都将受到欢迎。 更新资料 谢谢大家花时间帮助我解决我的问题。所有的答案和评论都非常有帮助。我决定坚持使用PHP,还要学习C#和Silverlight4。我们将看看生活将带我到何处。


6
我应该选择教义2还是Propel 1.5 / 1.6,为什么?[关闭]
我想听听那些使用Doctrine 2(或更高版本)和Propel 1.5(或更高版本)的人的信。这两个对象关系映射器之间的大多数比较都基于旧版本-Doctrine 1与Propel 1.3 / 1.4,并且两个ORM在其最新修订版中都进行了重大的重新设计。例如,大多数对Propel的批评似乎都集中在“ ModelName Peer ”类上,无论如何在1.5中都弃用了该类。 到目前为止,这是我积累的(并且我尝试使此列表尽可能平衡...): 推进 优点 对IDE非常友好,因为它生成了实际的代码,而不是依赖于PHP魔术方法。这意味着诸如代码完成之类的IDE功能实际上很有帮助。 快速(就数据库使用而言-对数据库不进行运行时自省) 架构版本之间的干净迁移(至少在1.6 beta中) 可以生成PHP 5.3模型(即名称空间) 使用方法之类的东西很容易将很多东西链接到一个数据库查询中useXxx。(请参见上面的“代码完成”视频) 缺点 需要一个额外的构建步骤,即构建模型类。 每当更改Propel版本,更改设置或更改架构时,都需要重建生成的代码。这对某些人可能是不直观的,并且丢失了应用于模型的自定义方法。(我认为吗?) -不正确;自定义方法不会丢失,因为生成的类是基类。Propel提供了专门用于扩展的实体类。 一些有用的功能(即版本行为,架构迁移)处于beta状态。 教义 优点 更流行 与Propel的ActiveRecord策略相比,学说查询语言可以表达数据之间潜在的更复杂的关系。 与Propel相比,更易于添加可重用的行为。 用于构建架构的基于DocBlock的注释嵌入在实际的PHP中,而不是单独的XML文件中。 在各处使用PHP 5.3命名空间 缺点 需要学习一种全新的编程语言(Doctrine查询语言) 根据“魔术方法”在多个地方实现,使IDE自动完成功能一文不值。 需要数据库自省,因此默认情况下比Propel慢一些;缓存可以消除这种情况,但是缓存会增加相当大的复杂性。 较少的行为包含在核心代码库中。Propel开箱即用提供的某些功能(例如嵌套集)仅可通过扩展使用。 怪异的巨大:) 我仅通过阅读可用于这两种工具的文档来收集了这些信息-我实际上还没有构建任何东西。 我想听听那些曾经使用这两种工具的人,分享他们在每个库的优缺点方面的经验,以及他们对此的建议:)
30 php  orm  doctrine 

7
哪个更好:将HTML包含在PHP代码之内还是之外?
看这个: <?php echo "Hello World"; ?> <br /> <?php echo "Welcome"; ?> 现在看一下: <?php echo "Hello World"; echo "<br />"; echo "Welcome"; ?> (至少从性能的角度来看)以上示例中的哪一个更好? 我知道这些示例很简单,但是我想从一开始就遵循良好的实践习惯,因此,当我有越来越多的台词时,它们不会影响性能或其他负面影响。

15
在两种编程语言之间来回切换是否明智?[关闭]
近两年来我一直在写很多PHP。现在,我正在进行.NET(主要是C#)开发。但是,有时我回去做一些php。 我的主要问题是,继续执行此操作是否明智?还是应该继续使用C#开发?从长远来看,这会对我造成伤害吗(请注意,我的主要目标不是成为所有交易的杰克)还是这样做是一种好习惯?

10
在编写简单网站(例如通讯录)时,什么是好的(简洁的)架构?
当我建立一个简单的网站(例如可以在其中添加,删除和更新联系人的通讯录)时,我会创建一个index.php文件,在该文件中,如果用户未登录,则要求用户输入密码,如果用户输入正确的密码,则分配了会话,并可以与联系人进行某些操作。 我有两个文件: 第一个(contacts.php)用于显示HTML代码。在HTML代码上方,我包括第二个文件并创建类。 第二个(contacts_class.php)包含添加,删除和更新的所有方法。 我认为可以,但是在实施大型项目时,我应该怎么做?我是否必须为每个页面创建文件夹并将文件放入其中(如上面的HTML和类),我应该怎么做?什么是一个好的且整洁的体系结构,用于构建其他程序员都能完全理解的大型项目?

5
PHP登录脚本应采用哪些最佳实践?
我想为客户网站重新编写我的登录脚本,以使其更加安全。我想知道我可以在其中实施哪些最佳实践。受密码保护的控制面板数量众多,但是似乎很少有人在代码编写,速度和安全性方面暗示最佳实践。 我将使用PHP和MYSQL数据库。 我曾经使用md5,但我发现sha256或sha512会更好(以及安全的哈希和盐)。 一些登录脚本会在整个会话甚至用户代理中记录IP地址,但是我想避免这种情况,因为它与代理服务器不兼容。 我在使用PHP 5中的会话的最佳实践(最后一次阅读的是PHP 4)方面也落后了一些,因此一些最佳实践可能会有所帮助。 谢谢。

9
为什么许多PHP开发人员讨厌使用isset()和/或PHP的类似防御功能(例如empty())?
在stackoverflow上,我一直看到这个问题: E_NOTICE?== E_DEBUG,避免使用更复杂的error_handler的isset()和@ 当E_NOTICE打开时,如何设置PHP不检查$ _GET的未定义索引? 如何停止PHP记录PHP通知错误 如何关闭此类PHP 5.3声明? 甚至Pekka(提供了很多可靠的PHP建议)也碰到了可怕的E_NOTICE怪物,并希望有一个比使用更好的解决方案isset():isset()和empty()使代码丑陋 就个人而言,我使用isset()并empty()在很多地方来管理我的应用程序的流量。例如: public function do_something($optional_parameter = NULL) { if (!empty($optional_parameter)) { // do optional stuff with the contents of $optional_parameter } // do mandatory stuff } 甚至像这样的简单代码段: if (!isset($_REQUEST['form_var'])) { // something's missing, do something about it. } 对我来说似乎很合逻辑。它看起来不膨胀,看起来像稳定的代码。但是,许多开发人员使用E_NOTICE启用了,从而启动了他们的应用程序,发现了许多令人沮丧的“未初始化的数组索引”通知,然后对检查已定义的变量并使用来“乱丢”其代码感到无所适从isset()。 我认为其他语言处理问题的方式也不同。从经验来看,JavaScript不像PHP那样礼貌。未定义的变量通常会停止脚本的执行。另外,(从经验上来讲)我确定像C / C …

7
为什么在PHP中很少使用引用?
此问题是从Stack Overflow 迁移而来的,因为可以在Software Engineering Stack Exchange上回答。 迁移 6年前。 我有一些C ++知识,并且知道那里经常使用指针,但是我已经开始研究PHP开放源代码,而且我从没看过在方法中使用引用的代码。 相反,代码始终使用返回值,而不是将对变量的引用传递给方法,该方法然后更改该变量的值并只返回它。 我已经读到使用引用会占用更少的内存,那么为什么不在PHP中使用它们呢?
26 php  reference 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.