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 相关文章推荐
收集的DedeCMS一些使用经验
Mar 17 PHP
PHP 日期加减的类,很不错
Oct 10 PHP
PHP大批量数据操作时临时调整内存与执行时间的方法
Apr 20 PHP
深入理解require与require_once与include以及include_once的区别
Jun 05 PHP
PHP+memcache实现消息队列案例分享
May 21 PHP
推荐一款MAC OS X 下php集成开发环境mamp
Nov 08 PHP
thinkphp3.2.2前后台公用类架构问题分析
Nov 25 PHP
THINKPHP项目开发中的日志记录实例分析
Dec 01 PHP
php实现的IMEI限制的短信验证码发送类
May 05 PHP
PHP编写登录验证码功能 附调用方法
May 19 PHP
PHP输出Excel PHPExcel的方法
Jul 26 PHP
laravel数据库查询结果自动转数组修改实例
Feb 27 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
风格模板初级不完全修改教程
2006/10/09 PHP
PHP配置文件中最常用四个ini函数
2007/03/19 PHP
thinkphp模板的包含与渲染实例分析
2014/11/26 PHP
php实现支持中文的文件下载功能示例
2017/08/30 PHP
JS 非图片动态loading效果实现代码
2010/04/09 Javascript
jquery 实现返回顶部功能
2014/11/17 Javascript
js查找节点的方法小结
2015/01/13 Javascript
JavaScript多线程详解
2015/08/12 Javascript
简单谈谈node.js 版本控制 nvm和 n
2015/10/15 Javascript
JavaScript实现简洁的俄罗斯方块完整实例
2016/03/01 Javascript
详解Angular2中的编程对象Observable
2016/09/17 Javascript
jQuery排序插件tableSorter使用方法
2017/02/10 Javascript
微信小程序 标签传入数据
2017/05/08 Javascript
微信小程序商品详情页规格属性选择示例代码
2017/10/30 Javascript
微信上传视频文件提示(推荐)
2018/11/22 Javascript
微信小程序实现商品属性联动选择
2019/02/15 Javascript
VUE安装使用教程详解
2019/06/03 Javascript
vuex中store存储store.commit和store.dispatch的用法
2020/07/24 Javascript
深入讨论Python函数的参数的默认值所引发的问题的原因
2015/03/30 Python
Python cookbook(数据结构与算法)从字典中提取子集的方法示例
2018/03/22 Python
Python 中字符串拼接的多种方法
2018/07/30 Python
python实现截取屏幕保存文件,删除N天前截图的例子
2019/08/27 Python
python 两种方法修改文件的创建时间、修改时间、访问时间
2020/09/26 Python
Python利用matplotlib绘制折线图的新手教程
2020/11/05 Python
用React加CSS3实现微信拆红包动画效果
2017/03/13 HTML / CSS
HTML5页面无缝闪开的问题及解决方案
2020/06/11 HTML / CSS
SmartBuyGlasses美国官网:太阳眼镜和眼镜
2017/08/20 全球购物
英国绿色商店:Natural Collection
2019/05/03 全球购物
日常奢侈品,轻松购物:Verishop
2019/08/20 全球购物
新闻编辑专业毕业自荐书范文
2014/02/05 职场文书
葛优非诚勿扰搞笑征婚台词
2014/03/17 职场文书
学校安全责任书范本
2014/07/23 职场文书
银行员工犯错检讨书
2014/09/16 职场文书
公务员四风问题对照检查材料整改措施
2014/09/26 职场文书
教师自查自纠材料
2014/10/14 职场文书
python中的被动信息搜集
2021/04/29 Python