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 $_SERVER当前完整url的写法
Nov 12 PHP
php打开远程文件的方法和风险及解决方法
Nov 12 PHP
session在php5.3中的变化 session_is_registered() is deprecated in
Nov 12 PHP
destoon设置自定义搜索的方法
Jun 21 PHP
PHP文件锁函数flock()详细介绍
Nov 18 PHP
php中debug_backtrace、debug_print_backtrace和匿名函数用法实例
Dec 01 PHP
PHP读取大文件的几种方法介绍
Oct 27 PHP
form表单传递数组数据、php脚本接收的实例
Feb 09 PHP
PHP实现登陆并抓取微信列表中最新一组微信消息的方法
Jul 10 PHP
Thinkphp5行为使用方法汇总
Dec 21 PHP
Laravel Validator 实现两个或多个字段联合索引唯一
May 08 PHP
PHP实现的AES 128位加密算法示例
Sep 16 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 创建文件(文件夹)以及目录操作代码
2010/03/04 PHP
fgetcvs在linux的问题
2012/01/15 PHP
PHP中fwrite与file_put_contents性能测试代码
2013/08/02 PHP
javascript 简练的几个函数
2009/08/29 Javascript
数组方法解决JS字符串连接性能问题有争议
2011/01/12 Javascript
JS控件的生命周期介绍
2012/10/22 Javascript
jquery.blockUI.js上传滚动等待效果实现思路及代码
2013/03/18 Javascript
TinyMCE汉化及本地上传图片功能实例详解
2016/05/31 Javascript
一个简单的JavaScript Map实例(分享)
2016/08/03 Javascript
AngularJs  E2E Testing 详解
2016/09/02 Javascript
快速解决js开发下拉框中blur与click冲突
2016/10/10 Javascript
jQuery中DOM节点删除之empty与remove
2017/01/20 Javascript
BootStrap Select清除选中的状态恢复默认状态
2017/06/20 Javascript
node crawler如何添加promise支持
2020/02/01 Javascript
详解vue或uni-app的跨域问题解决方案
2020/02/21 Javascript
使用 Jest 和 Supertest 进行接口端点测试实例详解
2020/04/25 Javascript
原生jQuery实现只显示年份下拉框
2020/12/24 jQuery
[04:11]DOTA2上海特级锦标赛主赛事首日TOP10
2016/03/03 DOTA
Python实现网站注册验证码生成类
2017/06/08 Python
使用python 爬虫抓站的一些技巧总结
2018/01/10 Python
详解Python3中的迭代器和生成器及其区别
2018/10/09 Python
讲解Python3中NumPy数组寻找特定元素下标的两种方法
2019/08/04 Python
Python在OpenCV里实现极坐标变换功能
2019/09/02 Python
Python学习笔记之函数的参数和返回值的使用
2019/11/20 Python
Python OpenCV读取显示视频的方法示例
2020/02/20 Python
怎么解决pycharm license Acti的方法
2020/10/28 Python
西安交大自主招生自荐信
2014/01/27 职场文书
德语专业求职信
2014/03/12 职场文书
搞笑婚礼主持词
2014/03/13 职场文书
少儿节目主持串词
2014/04/02 职场文书
《吃水不忘挖井人》教学反思
2014/04/15 职场文书
市场调查策划方案
2014/06/10 职场文书
教师政风行风评议心得体会
2014/10/21 职场文书
简历自我评价范文
2019/04/24 职场文书
《好妈妈胜过好老师》:每个孩子的优秀都是有源头的
2020/01/03 职场文书
laravel添加角色和模糊搜索功能的实现代码
2021/06/22 PHP