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 zlib压缩和解压缩swf文件的代码
Dec 30 PHP
PHP实现异步调用方法研究与分享
Oct 27 PHP
php中用date函数获取当前时间有误的解决办法
Aug 02 PHP
Codeigniter出现错误提示Error with CACHE directory的解决方案
Jun 12 PHP
php基于表单密码验证与HTTP验证用法实例
Jan 06 PHP
php实现上传图片保存到数据库的方法
Feb 11 PHP
smarty模板判断数组为空的方法
Jun 10 PHP
PHP命名空间namespace的定义方法详解
Mar 29 PHP
基于Laravel实现的用户动态模块开发
Sep 21 PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
Jun 13 PHP
浅析PHP7的多进程及实例源码
Apr 14 PHP
laravel5.5添加echarts实现画图功能的方法
Oct 09 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中的global
2014/08/19 PHP
PHP中加密解密函数与DES加密解密实例
2014/10/17 PHP
PHP实现股票趋势图和柱形图
2015/02/07 PHP
使用PHP和JavaScript判断请求是否来自微信内浏览器
2015/08/18 PHP
thinkphp5 加载静态资源路径与常量的方法
2017/12/24 PHP
Jquery操作Select 简单方便 一个js插件搞定
2009/11/12 Javascript
Jquery自定义button按钮的几种方法
2014/06/11 Javascript
jQuery截取指定长度字符串代码
2014/08/21 Javascript
JQuery 实现在同一页面锚点链接之间的平滑滚动
2014/10/29 Javascript
在AngularJS中使用AJAX的方法
2015/06/17 Javascript
vue.js初学入门教程(1)
2016/11/03 Javascript
微信小程序 HTTPS报错整理常见问题及解决方案
2016/12/14 Javascript
Bootstrap源码解读表单(2)
2016/12/22 Javascript
ES6中字符串string常用的新增方法小结
2017/11/07 Javascript
js canvas实现红包照片效果
2018/08/21 Javascript
微信小程序实现折线图的示例代码
2019/06/07 Javascript
基于Echarts图表在div动态切换时不显示的解决方式
2020/07/20 Javascript
[34:56]Ti4冒泡赛LGD vs Liquid 1
2014/07/14 DOTA
[45:56]Ti4正赛第一天 VG vs NEWBEE 3
2014/07/19 DOTA
python中使用sys模板和logging模块获取行号和函数名的方法
2014/04/15 Python
详解python进行mp3格式判断
2016/12/23 Python
python在非root权限下的安装方法
2018/01/23 Python
浅谈django orm 优化
2018/08/18 Python
PyCharm 设置SciView工具窗口的方法
2019/01/15 Python
HTML5 Canvas自定义圆角矩形与虚线示例代码
2013/08/02 HTML / CSS
Canvas 像素处理之改变透明度的实现代码
2019/01/08 HTML / CSS
100%有机精油,美容油:House of Pure Essence
2018/10/30 全球购物
Lentiamo荷兰:在线订购隐形眼镜、隐形眼镜液和太阳镜
2019/10/25 全球购物
惠普新加坡官方商店:HP Singapore
2020/04/17 全球购物
解决python 输出到csv 出现多空行的情况
2021/03/24 Python
工作保证书范文
2014/04/29 职场文书
幼儿园食品安全责任书
2015/05/08 职场文书
中学教代会开幕词
2016/03/04 职场文书
Python爬虫基础之初次使用scrapy爬虫实例
2021/06/26 Python
不同品牌、不同型号对讲机如何互相通联
2022/02/18 无线电
win11无法登录onedrive错误代码0x8004def7怎么办 ?
2022/04/05 数码科技