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 相关文章推荐
pw的一个放后门的方法分析
Oct 08 PHP
用mysql触发器自动更新memcache的实现代码
Oct 11 PHP
PHP调用MsSQL Server 2012存储过程获取多结果集(包含output参数)的详解
Jul 03 PHP
php中curl、fsocket、file_get_content三个函数的使用比较
May 09 PHP
php的sso单点登录实现方法
Jan 08 PHP
php获取访问者IP地址汇总
Apr 24 PHP
分享php分页的功能模块
Jun 16 PHP
php遍历替换目录下文件指定内容的方法
Nov 10 PHP
php文件管理基本功能简单操作
Jan 16 PHP
浅谈Laravel中的一个后期静态绑定
Aug 11 PHP
三个思路解决laravel上传文件报错:413 Request Entity Too Large问题
Nov 13 PHP
深入解析PHP底层机制及相关原理
Dec 11 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文本操作类
2006/11/25 PHP
用PHP读取RSS feed的代码
2008/08/01 PHP
解析php获取字符串的编码格式的方法(函数)
2013/06/21 PHP
php如何解决无法上传大于8M的文件问题
2014/03/10 PHP
ThinkPHP实现事务回滚示例代码
2014/06/23 PHP
laravel 解决groupBy时出现的错误 isn't in Group By问题
2019/10/17 PHP
event.srcElement 用法笔记e.target
2009/12/18 Javascript
javascript获得服务器端控件的ID的实现代码
2011/12/28 Javascript
深入理解JavaScript系列(14) 作用域链介绍(Scope Chain)
2012/04/12 Javascript
javascript 10进制和62进制的相互转换
2014/07/31 Javascript
JS+CSS实现大气清新的滑动菜单效果代码
2015/10/22 Javascript
jQuery实现选项联动轮播效果【附实例】
2016/04/19 Javascript
JavaScript数据操作_浅谈原始值和引用值的操作本质
2016/08/23 Javascript
js微信应用场景之微信音乐相册案例分享
2017/08/11 Javascript
在Vue 中使用Typescript的示例代码
2018/09/10 Javascript
jQuery Raty星级评分插件使用方法实例分析
2019/11/25 jQuery
Vue+Element实现网页版个人简历系统(推荐)
2019/12/31 Javascript
如何用JS模拟实现数组的map方法
2020/07/30 Javascript
python二分查找算法的递归实现方法
2016/05/12 Python
利用Django模版生成树状结构实例代码
2019/05/19 Python
Python使用itchat模块实现群聊转发,自动回复功能示例
2019/08/26 Python
golang/python实现归并排序实例代码
2020/08/30 Python
CSS3等相关属性制作分页导航实现代码
2012/12/24 HTML / CSS
canvas画布实现手写签名效果的示例代码
2019/04/23 HTML / CSS
美国性感女装网站:bebe
2017/03/04 全球购物
viagogo英国票务平台:演唱会、体育比赛、戏剧门票
2017/03/24 全球购物
街头时尚在线:JESSICABUURMAN
2019/06/16 全球购物
鞋类设计与工艺专业销售求职信
2013/11/01 职场文书
商场经理竞聘演讲稿
2014/01/01 职场文书
演讲稿怎么写才完美
2014/01/02 职场文书
出国留学介绍信
2014/01/13 职场文书
四川成都导游欢迎词
2014/01/18 职场文书
机关工会开展学习雷锋活动总结
2014/03/01 职场文书
2015年英语教研组工作总结
2015/05/23 职场文书
主持人开场白台词
2015/05/29 职场文书
Alexa停服!网站排名将何去何从?目前还没有替代品。
2022/04/15 杂记