php函数的常用方法及注意之处小结


Posted in PHP onJuly 10, 2011
<?php 
/** 
* @author Yuans 
* @copyright php.com 
* @package 函数的常用使用方法及特性. 
*/ 
# 基础函数编写注意点. 
// 为了方便ide的管理及代码提示功能,我们在所有函数命名时使用fun_开头. 
function fun_cutstr($str,$str_width=0,$str_pad='...'){ 
// 每个函数都得考虑一些异常的情况, 比如函数引入不对, 为0,为false等. 
// 由于外部期望返回截取字符后的字符,所以就算此函数不工作,也应该将它传进来的值给返回. 
if(empty($str) === true || empty($str_width) === true) 
return $str; 
// 参数过滤 
$str_width += 0; 
// 保持一个原则, 尽量不要去污染原始参数, 
$return_str = mb_strcut($str,0,$str_width,'utf-8'); 
// 加强判断, 如果return_str无法有值,由于是mb函数,许多服务器会无法执行. 
if(empty($return_str) === false){ 
return $return_str.$str_pad; 
}else{ 
return $str; 
} 
} 
echo fun_cutstr('aaaaaaaaaaaaaaaaaaaaaaaa',5); // out disply: "aaaaa..."; 
# 由于是utf-8编码, 所以每个汉字为4字节, 此处将返回"我是..."; 
echo fun_cutstr('我是个技术工作者',8); 
# 或者我们需要考虑对函数的严重破坏,比如如下函数 
echo fun_cutstr(false); //out: false 
echo fun_cutstr('tbbbbbbbbs','aaaaaaaa'); // out: tbbbbbbbbs 
echo fun_cutstr('','aaaaaaaa'); //out: empty 
?>

PHP函数的一些基础知识
A: 跟变量命名一样,不可以内置函数名,不可以用数字来命名函数.
B: 重复调用性.
C: 支持静态元素.
D: 支持不固定参数
个人建议技术员对函数做如下规范:
A: 函数名建立分类前缀, 比如字符型的就str_xxx, 布尔型的就 bool_xxxx, 公共函数就 open_xxx 应用型的函数就 APP_xxxx, 临时型的就 temp_xxx
B: 函数的第一步请先判断, 虽然有时自己知道一定会传入某个类型的参数,但作为标准化来说, 先判断再处理是为了程序的健壮也是为了安全.
C: 不要污染原始变量, 如果你有项目经验,有debug应用经验,你就会明白.
D: 引用函数尽量少用,占用内存非常大,损耗严重.
E:不要用大写来编写代码, 不要觉得很cool.
F: 过份产生函数是一种退步的方式, 你可以思考着是否具有重复性, 是否需要包装性, 随意将过程封成函数不是明智之举.
G: 写好你的函数注释.
<?php 
$b = &fun_cutstr('aaaaaaaaaaaaaaaaaaaaaaaa',5); // out disply: "aaaaa..."; 
fun_cutstr('cccccccccccccccccc',5); 
echo $b; 
?>

引用函数将在php 5.3版本上无法正常运行, 6.0也最终将其抛弃, 理论上讲echo $b,将会返回ccccc...
$b引入了函数的地址, 为此函数的任何改变都会被赋值给$b.
当然这些真的可以很少用, 不必太在意,特别是新学习者.
静态函数如下表示:
<?php 
/** 
* @author Yuans 
* @copyright php.com 
* @package 函数的常用使用方法及特性. 
*/ 
# 静态函数编写注意点. 
function fun_static(){ 
static $a = 1; 
echo $a ++; 
} 
fun_static(); 
fun_static(); 
fun_static(); 
?> 
static $a = 1; 仅会在第一次调用函数时执行, 表明它是个静态, 第二次执行时, $a变量就是取回静态的值, 而不会去执行$a = 1的赋值.如此类推, 数值不停地相加.<BR>
PHP 相关文章推荐
PHP cron中的批处理
Sep 16 PHP
php摘要生成函数(无乱码)
Feb 04 PHP
php使用百度翻译api示例分享
Jan 31 PHP
php定义数组和使用示例(php数组的定义方法)
Mar 29 PHP
PHP中执行cmd命令的方法
Oct 11 PHP
浅析php创建者模式
Nov 25 PHP
分享php多功能图片处理类
May 15 PHP
/etc/php-fpm.d/www.conf 配置注意事项
Feb 04 PHP
使用一个for循环将N*N的二维数组的所有值置1实现方法
May 29 PHP
PHP一个简单的无需刷新爬虫
Jan 05 PHP
详解使用php-cs-fixer格式化代码
Sep 16 PHP
ThinkPHP5和ThinkPHP6的区别
Mar 31 PHP
PHP 数据结构 算法描述 冒泡排序 bubble sort
Jul 10 #PHP
PHP中获取变量的变量名的一段代码的bug分析
Jul 07 #PHP
PHP的一个基础知识 表单提交
Jul 04 #PHP
php与mysql建立连接并执行SQL语句的代码
Jul 04 #PHP
PHP全概率运算函数(优化版) Webgame开发必备
Jul 04 #PHP
php守护进程 加linux命令nohup实现任务每秒执行一次
Jul 04 #PHP
ajax 的post方法实例(带循环)
Jul 04 #PHP
You might like
php中删除字符串中最先出现某个字符的实现代码
2013/02/03 PHP
php url路由入门实例
2014/04/23 PHP
php操作memcache缓存方法分享
2015/06/03 PHP
PHP数组函数array_multisort()用法实例分析
2016/04/02 PHP
Js之软键盘实现(js源码)
2007/01/30 Javascript
小议javascript 设计模式 推荐
2009/10/28 Javascript
jquery控制左右箭头滚动图片列表的实例
2013/05/20 Javascript
javascript实现颜色渐变的方法
2013/10/30 Javascript
Javascript执行效率全面总结
2013/11/04 Javascript
jquery+json实现数据列表分页示例代码
2013/11/15 Javascript
jQuery中data()方法用法实例
2014/12/27 Javascript
jQuery同步提交示例代码
2015/12/12 Javascript
JavaScript设计模式开发中组合模式的使用教程
2016/05/18 Javascript
Angular2从搭建环境到开发步骤详解
2016/10/17 Javascript
基于Marquee.js插件实现的跑马灯效果示例
2017/01/25 Javascript
iView-admin 动态路由问题的解决方法
2018/10/03 Javascript
vue中利用three.js实现全景图的完整示例
2020/12/07 Vue.js
如何在JavaScript中等分数组的实现
2020/12/13 Javascript
[03:57]DOTA2英雄梦之声_第03期_幻影刺客
2014/06/21 DOTA
[01:10]DOTA2次级职业联赛 - U5战队宣传片
2014/12/01 DOTA
python 控制语句
2011/11/03 Python
python调用OpenCV实现人脸识别功能
2018/05/25 Python
Python3爬虫教程之利用Python实现发送天气预报邮件
2018/12/16 Python
对Python的交互模式和直接运行.py文件的区别详解
2019/06/29 Python
Python实现简单的列表冒泡排序和反转列表操作示例
2019/07/10 Python
在django中自定义字段Field详解
2019/12/03 Python
html5 postMessage解决跨域、跨窗口消息传递方案
2016/12/20 HTML / CSS
工程概预算专业毕业生求职信
2013/10/04 职场文书
中学生英语演讲稿
2014/04/26 职场文书
乡镇保密工作责任书
2014/07/28 职场文书
质量月活动总结
2014/08/26 职场文书
2014镇党委书记党建工作汇报材料
2014/11/02 职场文书
优秀教师事迹材料
2014/12/15 职场文书
爱心募捐感谢信
2015/01/22 职场文书
Jpa Specification如何实现and和or同时使用查询
2021/11/23 Java/Android
工厂无线对讲系统解决方案
2022/02/18 无线电