用PHP开发健壮的代码:有效地使用变量,第2部分

“用PHP开发健壮的代码”是关于解决大中型应用程序中的实际问题的系列文章。在本文中,PHP老手Amol Hatwar讨论了如何有效地使用变量。他还演示了如何通过使用PHP中可变的变量名来构造配置文件解析器,以便简化脚本配置。

在我的 前一篇文章中,我研究了在规划、设计甚至编写代码期间必须考虑的一些因素。在本文中,您将真正接触到实际代码,并可以看到实际运行中的一些东西。如果您还没有看过前一篇文章,那么最好现在就看一看。

正确处理变量

变量与函数是任何计算机语言必不可少的要素。有了变量,您可以将数据抽象化;有了函数,您可以将几行代码抽象化。正如Bruce Eckel在他的书籍 《C++编程思想》中所说的那样,所有编程语言都提供抽象。汇编语言是对底层机器的小抽象。随后的许多所谓的 命令式语言(如Fortran、BASIC和C)是对汇编语言的抽象。

编程语言提供的抽象的种类和质量直接关系到您所能解决的问题的复杂程度。理解PHP如何处理变量和函数,将有助于您有效地使用它们。

名称里有什么?

就象我在前一篇文章中提到的那样,命名约定和编码约定是重要的。无论您使用什么命名约定,请记住要在项目中严格遵守它。如果您使用应用得最广泛的命名约定,那么您的代码将被更多的人所接受。

对变量进行命名时,在包括脚本时要特别注意不要覆盖正在使用的变量。在大型应用程序中,当增加新的功能时,这是常见的错误根源。防止这一问题的最佳办法就是使用前缀。把变量所在模块的名称缩写作为前缀来使用。例如,如果一个处理投票的模块中有一个保存用户标识的变量,那么您可以将该变量命名为$poll_userID或 $pollUserID。

理解PHP变量

PHP是解释型语言。这有许多好处,很快您将学习利用其中的一些。第一个很明显的好处是:它使您省掉了设计-编码-编译-测试周期 — 您在编辑器中编写的任何代码都立即可使用。然而,最重要的好处是您不用担心变量的类型以及如何在内存中管理这些变量。所有分配给脚本的内存在执行完脚本后都由PHP自动收回。此外,可以对变量执行许多操作而不必知道变量的类型。 清单1中的代码在PHP中工作十分正常,但在C和Java语言中会抛出一大堆错误消息:

清单 1. 带变量的样本PHP代码

<?php
$myStr = 789696;            // An integer.
$myVar = 2;              // Another integer.
$myStr = "This is my favorite band: "; // Strings are more fun.
$myStr = $myStr . "U" . $myVar;    // Doing this is OK, too.
echo "$myVar\n";
?>

安装完PHP后,如要运行运行代码,可首先将该代码保存为一个 .php 文件,再将该文件放置在 Web 服务器上,然后将浏览器指向该文件。更好的办法是安装PHP的 CGI 版本。然后,通过在 shell 或命令提示符下输入以下命令,并用包含您的脚本的文件名替代 script-name,这样就可以运行该脚本了。

path-to-php/php
script-name

该代码能够正常工作,因为PHP是类型宽松的语言。用通俗易懂的英语,可以不考虑变量类型,可以把字符串赋值给整数,以及毫不费力地用较大的字符串替代较小的字符串。这在象 C 这样的语言中是不可能的事情。在内部,PHP 将变量所拥有的数据与类型分开存储。类型存储在单独的表中。每当出现包含不同类型的表达式时,PHP 自动确定程序员想要做什么,接着更改表中的类型,然后自动对表达式求值。

时间: 2024-08-06 09:35:52

用PHP开发健壮的代码:有效地使用变量,第2部分的相关文章

用 PHP 开发健壮的代码(二):有效地使用变量

变量 "用 PHP 开发健壮的代码"是关于解决大中型应用程序中的实际问题的系列文章.在本文中,PHP 老手 Amol Hatwar 讨论了如何有效地使用变量.他还演示了如何通过使用 PHP 中可变的变量名来构造配置文件解析器,以便简化脚本配置.在我的前一篇文章中,我研究了在规划.设计甚至编写代码期间必须考虑的一些因素.在本文中,您将真正接触到实际代码,并可以看到实际运行中的一些东西.如果您还没有看过前一篇文章,那么最好现在就看一看. 正确处理变量变量与函数是任何计算机语言必不可少的要素

用 PHP 开发健壮的代码(一):高屋建瓴的介绍

用 PHP 开发健壮的代码 系列文章是关于解决大中型应用程序中的实际问题的.这一系列文章主要侧重于 PHP 4 中可用的新功能,重点介绍了大量使开发工作更容易的技巧和窍门.在这一系列文章中,您将发现许多要学习的示例和技术,还附带了大量样本代码.在这第一篇文章中,PHP 高手 Amol Hatwar 从更高的角度介绍了如何为中到大型 Web 应用程序设计和编写无错误.可维护的代码.如果您是一名构建 Web 应用程序的开发者并且需要速度.功能和平台独立性(platform-independence)

用PHP开发健壮的代码,第1部分

用PHP开发健壮的代码系列文章是关于解决大中型应用程序中的实际问题的.这一系列文章主要侧重于PHP4中可用的新功能,重点介绍了大量使开发工作更容易的技巧和窍门.在这一系列文章中,您将发现许多要学习的示例和技术,还附带了大量样本代码.在这第一篇文章中,PHP高手Amol Hatwar从更高的角度介绍了如何为中到大型Web 应用程序设计和编写无错误.可维护的代码. 如果您是一名构建Web应用程序的开发者并且需要速度.功能和平台独立性(platform-independence),那么PHP将适合您.

用 PHP 开发健壮的代码(三):编写可重用函数

函数 在本系列文章(有关如何在实际情况下开发有效的 PHP 代码)的第 3 部分中,Amol Hatwar 讨论了如何构建最有效的功能型函数,使用这些函数不会牺牲太多性能或可管理性.作者重点阐述了如何编写可重用函数,并介绍了如何避免与该任务相关的一些最常见问题.欢迎回来.在本系列文章的第 1 部分中,我讨论了一些基本的 PHP 设计规则,并介绍了如何编写安全.简单.与平台无关且快速的代码.在第 2 部分中,我介绍了变量,并讨论了它们在 PHP 编码中的用法 - 好的和坏的实践. 在本文中,您将了

用 PHP 开发健壮的代码:编写可重用函数,第3部分

在本系列文章(有关如何在实际情况下开发有效的PHP代码)的第3部分中,Amol Hatwar讨论了如何构建最有效的功能型函数,使用这些函数不会牺牲太多性能或可管理性.作者重点阐述了如何编写可重用函数,并介绍了如何避免与该任务相关的一些最常见问题. 欢迎回来.在本系列文章的第1部分中,我讨论了一些基本的PHP设计规则,并介绍了如何编写安全.简单.与平台无关且快速的代码.在第2部分中,我介绍了变量,并讨论了它们在PHP编码中的用法 - 好的和坏的实践. 在本文中,您将了解如何在PHP中明智地使用函数

安卓简单app开发实践,代码完成后没报错,但功能就是无法使用,学生菜鸟,求指导

问题描述 安卓简单app开发实践,代码完成后没报错,但功能就是无法使用,学生菜鸟,求指导 想把网上一个简单记事本的功能(编辑,保存,修改,删除)添加入一个含三个Fragment的app框架中,但添加并把提示的错误修改后发现功能根本不管用,图标都不能点击,运行结果中console显示[2015-07-14 22:44:42 - ddms] Can't bind to local 8700 for debugger. 解决方案 看下防火墙和杀毒软件设置,提示是端口没法绑定. 解决方案二: 直接使用真

分享9个最好用的JavaScript开发工具和代码编辑器

  这篇文章主要介绍了9个最好用的JavaScript开发工具和代码编辑器,需要的朋友可以参考下 Web设计和开发是现今越来越流行的职业方向之一.工欲善其事,必先利其器,如果你想在这个领域出类拔萃,那么你就必须具备一些优秀的技能,例如能操作不同的平台.IDE和其他各种各样的工具. 谈到平台和IDE,现在已经不是以前那个掌握一个IDE就能"一招鲜吃遍天"的时代了.激烈的竞争以及蔓延到现在的集成开发环境.基于IDE是用于创建和部署应用程序的强大客户端应用程序,下面我们要分享的就是对于很多网

Android开发常用经典代码段集锦_Android

本文实例总结了Android开发常用经典代码段.分享给大家供大家参考,具体如下: 1.图片旋转 Bitmap bitmapOrg = BitmapFactory.decodeResource(this.getContext().getResources(), R.drawable.moon); Matrix matrix = new Matrix(); matrix.postRotate(-90);//旋转的角度 Bitmap resizedBitmap = Bitmap.createBitma

android-安卓开发 如何在代码中动态切换fragment加载的布局文件?

问题描述 安卓开发 如何在代码中动态切换fragment加载的布局文件? viewpager和fragment一起用的时候,比如有啊,吧,a,b,c,三页,一开始显示的是a,我想当用户滑到b和c时先显示的是一个loding的圆环进度条,之后再显示这个fragment的内容,请问应该如何做? 解决方案 上面说的是fragment之间的切换,你这个问题直接用view.setVisibility()方法控制进度条隐藏或显示就好了,也可以吧进度条放在Dialog或pupopWindow等当中控制show