`
txf2004
  • 浏览: 7081304 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

6条技巧减少你的php代码量 - 马永占 译

阅读更多

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。http://blog.csdn.net/mayongzhan - 马永占,myz,mayongzhan

原文地址:http://www.alexatnet.com/node/100
PHP是一个很好的语言,而且有很多惊喜。而今天我看到了一个有趣的方法,在Arnold Daniels的博客。他谈到PHP中的临时变量。这个秘诀有益于"懒惰"的程序员,使程序员可以不用再去想该去给变量取个什么名字。他们可以使用这样的变量名:${0}。

我比Arnold Daniels更懒,根本就不想用变量。下面有一些技巧让你的代码更少。

1. 使用 || (or) 和 && (and) 操作代替 if.

// 标准写法
$status = fwrite($h, 'some text');
if (!$status) {
log('Writing failed');
}

// 较少的代码
${0} = fwrite($h, 'some text');
if (!${0}) log('Writing failed');

// 更少的代码
fwrite($h, 'some text') or log('Writing failed');

2. 使用三元运算符.

// 标准写法
if ($age < 16) {
$message = 'Welcome!';
} else {
$message = 'You are too old!';
}

// 较少的代码
$message = 'You are too old!';
if ($age < 16) {
$message = 'Welcome!';
}

// 更少的代码
$message = ($age < 16) ? 'Welcome!' : 'You are too old!';

3. 使用for替换掉while.

// 标准写法
$i = 0;
while ($i < 100) {
$source[] = $target[$i];
$i += 2;
}

// 较少的代码
for ($i = 0; $i < 100; $source[] = $target[$i+=2]);

4. 很多地方是必须写变量。例如: PHP fluent API tips 。 例如:一个函数调用得到一个数组,然后直接使用数组元素。

//下面这个例子会发生错误,因为函数调用,返回的数组没有先赋值给一个变量,而直接使用['extension']。

$ext = pathinfo('file.png')['extension'];
// result: Parse error: syntax error, unexpected '[' in ... on line ...

你可以建立一个函数来解决这个问题,如下:(相当不错的方法,看着有点别扭...)

// returns reference to the created object
function &r($v) { return $v; }
// returns array offset
function &a(&$a, $i) { return $a[$i]; }

5. 多花时间去研究php自带的函数方法,PHP有很多很有趣的方法能使你的代码更短。

6. 当写更多的代码可以使程序更清晰的时候,不要懒惰。 多花时间写注释,尽量写易读的代码。这才是真正节约时间的技巧。(多写注释和易读的代码,在以后修改调试的时候会节约时间)





PHP is a good language, but there are always surprises. And today I've seen an interesting approach in Arnold Daniels's blog. He talks about temporary variables in PHP. This tip is useful to "lazy" developers who do not even think about variable names. They may prefer magic names like ${0} and 0 is good enough variable name, why not...
But I'm even more lazy then Arnold and sure that when there is no variable, then there is no problem. So here are a few tips that can make your code shorter and harder to read :-)
1. Use || (or) and && (and) operations instead of if.
// A lot of code
$status = fwrite($h, 'some text');
if (!$status) {
log('Writing failed');
}

// Less code
${0} = fwrite($h, 'some text');
if (!${0}) log('Writing failed');

// Even less code
fwrite($h, 'some text') or log('Writing failed');
2. Use ternary operator.
// A lot of code
if ($age < 16) {
$message = 'Welcome!';
} else {
$message = 'You are too old!';
}

// Less code
$message = 'You are too old!';
if ($age < 16) {
$message = 'Welcome!';
}

// Even less code
$message = ($age < 16) ? 'Welcome!' : 'You are too old!';
3. Use for instead of while.
// A lot of code
$i = 0;
while ($i < 100) {
$source[] = $target[$i];
$i += 2;
}

// less code
for ($i = 0; $i < 100; $source[] = $target[$i+=2]);
4. In some cases PHP requires you to create a variable. For example, ech the PHP fluent API tips article. Another example is getting array element when array is returned by the function.
$ext = pathinfo('file.png')['extension'];
// result: Parse error: syntax error, unexpected '[' in ... on line ...
To handle all these situation you can create a set of small functions which shortcuts frequently used operations.
// returns reference to the created object
function &r($v) { return $v; }
// returns array offset
function &a(&$a, $i) { return $a[$i]; }
5. Explore the language you use. PHP is very powerful and has a lot of functions and interesting aspects of the language which can make your code more efficient and short.
6. When it is better to write more and then read the code easily, do not be lazy. Spend a few seconds and write a comment and more readable construction. This is only a tip in this list that really can save hours, not minutes.

分享到:
评论

相关推荐

    wp开发代码2-6

    在本压缩包文件“wp开发代码2-6”中,我们涵盖了WordPress(简称wp)开发的四个关键章节:第2章、第4章、第5章和第6章。WordPress是一个广泛使用的开源内容管理系统,主要用于构建网站和博客。开发者通过编写代码...

    PHP入门代码示例-全!

    PHP入门示例代码,带文字笔记说明,让你以最快的速度掌握PHP开发基本技巧,导入Eclipse,方便查找与使用。

    MySQL PHP代码生成器(专业的为MySQL生成代码)--- PHP为MySQL生成高质量代码的工具

    MySQL PHP代码生成器, 一个强大的MYSQL GUI程序,用于生成高质量的Mysql PHP代码,无论是个人学习还是研究,都是一款很不错的工具,尤其是能为MySQL生成高质量的代码,还提供了大量的模板。

    Laravel开发-laravel-php-cs-fixer

    通过使用此配置文件,开发者可以确保团队中的每个人都遵循相同的编码规范,减少因个人习惯导致的代码差异。 安装`laravel-php-cs-fixer`可以通过Composer,这是PHP的依赖管理工具。在终端中,你可以运行以下命令: ...

    php 的十个高级技巧

    在PHP编程语言的世界里,掌握一些高级技巧可以显著提升代码质量、效率以及开发效率。以下就是十个值得新手学习的PHP高级技巧: 1. **错误处理与日志记录**: - 使用`error_reporting()`和`ini_set()`设置错误报告...

    php-5.4.7.tar.gz

    3. **配置PHP-FPM**:启用FastCGI进程管理器,编辑 `/etc/php/php-fpm.conf` 和 `/etc/php/fpm/pool.d/www.conf`,设置监听端口和用户组等。 4. **启动服务**:`sudo /usr/local/php/sbin/php-fpm`,并添加到开机...

    php-mbstring-5.3.3-3.el6.x86_64.rpm

    php-mbstring-5.3.3-3.el6.x86_64.rpm 适用于红帽6系统

    php-5.3.3-Win32-VC6-x86.zip

    这个压缩包“php-5.3.3-Win32-VC6-x86.zip”提供了免安装的便捷方式,用户可以直接配置并使用,无需复杂的过程,极大地简化了开发者的系统部署。 压缩包内包含了PHP运行所必需的核心组件,让我们逐一解析: 1. **...

    PHP常用程序代码.pdf

    这条SQL语句选取了ID小于当前文章ID(本例中为6)的所有记录,并按ID降序排列,最后取第一条记录作为上一篇文章。 - **下一篇文章:** ```sql SELECT * FROM wp_posts WHERE ID &gt; 6 ORDER BY ID ASC LIMIT 1; `...

    ZendGuardLoader-70429-PHP-5.4-linux-glibc23-x86_64.tar.gz

    标题中的"ZendGuardLoader-70429-PHP-5.4-linux-glibc23-x86_64.tar.gz"是一个特定版本的 ZendGuardLoader 的软件包,专为 PHP 5.4 构建,适用于基于 Linux 的系统,且依赖于 glibc 2.3 库,支持 x86_64(64位)架构...

    PHP动态网站开发项目教程-源代码

    6. **错误与异常处理**:学习如何编写健壮的代码,通过错误处理和异常捕获来提高程序的稳定性和可维护性。 7. **面向对象编程**:深入理解PHP的面向对象特性,包括类、对象、属性、方法、继承、封装和多态,这些都...

    php-5.3.1-Win32-VC6-x86.zip

    标题中的"php-5.3.1-Win32-VC6-x86.zip"表明这是一个针对Windows 32位系统的PHP版本,具体是版本5.3.1,该版本是由Visual C++ 6(VC6)编译器构建的。在IT领域,PHP是一种广泛使用的服务器端脚本语言,特别适用于Web...

    php-5.5.10-Win32-VC11-x64.zip

    标题 "php-5.5.10-Win32-VC11-x64.zip" 指的是一个针对Windows 64位系统的PHP版本,具体是PHP 5.5.10。这个版本是由Visual C++ 11编译器(VC11)构建的,这意味着它依赖于VC11的运行时库来正常运行。这个版本的PHP...

    PHP精粹编写高效PHP代码 书本源码

    《PHP精粹编写高效PHP代码》是一本专为PHP开发者设计的高级教程,旨在帮助读者提升编程技巧,编写出性能更优、效率更高的代码。这本书深入探讨了PHP语言的各个方面,包括最佳实践、优化策略以及如何避免常见的性能...

    php-5.2.5-x64(php 64位)

    6. **改进的内存管理**:PHP 5.2.x系列提升了内存效率,减少了内存泄漏的可能性。 7. **FastCGI支持**:配合IIS FastCGI,可以实现高效稳定的PHP运行环境。 ### IIS FastCGI: IIS(Internet Information ...

    php-bcmath安装包

    在给定的描述中提到的是一个 RPM 包(`php-bcmath-5.3.3-3.el6_2.8.x86_64.rpm`),这是针对 Red Hat Enterprise Linux (RHEL) 和 CentOS 系统的软件包。要安装这个扩展,你可以使用 `yum` 或 `dnf` 命令(取决于你...

    最新 php_memcache-3.0.8-5.5-ts-vc11-x64 用于 for php5.5 64位版本

    总的来说,PHP Memcache扩展在64位PHP5.5环境中的使用能有效提升网站性能,减少数据库负载,尤其适合处理大数据量和高并发的Web应用。正确安装和配置此扩展是优化应用程序的关键,同时理解其工作原理和使用方法也对...

    PHPMailer----php发送邮件,可带附件和邮件体中插入图片

    PHPMailer 是一个流行的开源PHP库,专门用于发送电子邮件。它提供了丰富的功能,包括但不限于添加附件、在邮件正文中插入图片,以及支持SMTP验证等。PHPMailer的灵活性和易用性使其成为许多PHP开发者首选的邮件发送...

    PHP绑定golang库php-go-master.zip

    1. 获取源代码:首先,你需要从GitHub或其他源下载“php-go-master”库的源代码。 2. 安装Go依赖:运行`go get`命令获取库的依赖。 3. 编译Go代码:使用`go build`命令编译Go代码,生成动态链接库文件。 4. 配置...

    php-5.5.11-nts-Win32-VC11-x86.zip

    【标题】"php-5.5.11-nts-Win32-VC11-x86.zip"指的是PHP的一个特定版本,适用于Windows 32位操作系统。此版本是5.5.11,不包含线程安全(Non-Thread Safe,简称NTS),并且是由Visual C++ 11(Visual Studio 2012)...

Global site tag (gtag.js) - Google Analytics