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脚本的10个技巧(5)
Oct 09 PHP
网页游戏开发入门教程三(简单程序应用)
Nov 02 PHP
php $_SERVER[&quot;REQUEST_URI&quot;]获取值的通用解决方法
Jun 21 PHP
PHP遍历数组的几种方法
Mar 22 PHP
PHP eval函数使用介绍
Dec 08 PHP
通过dbi使用perl连接mysql数据库的方法
Apr 16 PHP
PHP实现的MongoDB数据库操作类分享
May 12 PHP
php数组查找函数总结
Nov 18 PHP
PHP简单留言本功能实现代码
Jun 09 PHP
CMSPRESS 10行代码搞定 PHP无限级分类2
Mar 30 PHP
laravel框架select2多选插件初始化默认选中项操作示例
Feb 18 PHP
详解thinkphp的Auth类认证
May 28 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
Joomla下利用configuration.php存储简单数据
2010/05/19 PHP
PHP token验证生成原理实例分析
2019/06/05 PHP
javascript 面向对象 function类
2010/05/13 Javascript
详解Node.js包的工程目录与NPM包管理器的使用
2016/02/16 Javascript
实例讲解jQuery中对事件的命名空间的运用
2016/05/24 Javascript
jquery层级选择器(匹配父元素下的子元素实现代码)
2016/09/05 Javascript
微信小程序 wxapp内容组件 text详细介绍
2016/10/31 Javascript
javaScript基础详解
2017/01/19 Javascript
深入浅析Nodejs的Http模块
2017/06/20 NodeJs
JavaScript转换数据库DateTime字段类型方法
2017/06/27 Javascript
在Vue中使用highCharts绘制3d饼图的方法
2018/02/08 Javascript
从零开始学习搭建React脚手架项目
2018/08/23 Javascript
JavaScript键盘事件常见用法实例分析
2019/01/03 Javascript
实例详解vue中的$root和$parent
2019/04/29 Javascript
JS实现iframe中子父页面跨域通讯的方法分析
2020/03/10 Javascript
NestJs使用Mongoose对MongoDB操作的方法
2021/02/22 Javascript
10款最好的Web开发的 Python 框架
2015/03/18 Python
Python执行时间的计算方法小结
2017/03/17 Python
Python升级导致yum、pip报错的解决方法
2017/09/06 Python
Python爬虫通过替换http request header来欺骗浏览器实现登录功能
2018/01/07 Python
PyTorch基本数据类型(一)
2019/05/22 Python
python实现的登录与提交表单数据功能示例
2019/09/25 Python
python 实现多线程下载视频的代码
2019/11/15 Python
python yield和Generator函数用法详解
2020/02/10 Python
Python基础教程之输入输出和运算符
2020/07/26 Python
Pytho爬虫中Requests设置请求头Headers的方法
2020/09/22 Python
python中PyQuery库用法分享
2021/01/15 Python
CSS3系列之3D制作方法案例
2017/08/14 HTML / CSS
汽车专业大学生职业生涯规划范文
2014/01/07 职场文书
《鸟岛》教学反思
2014/04/26 职场文书
创业女性典型材料
2014/05/02 职场文书
财务会计专业自荐书
2014/06/30 职场文书
大型主题婚礼活动策划方案
2014/09/15 职场文书
群众路线剖析材料
2014/09/30 职场文书
MySQL8.0升级的踩坑历险记
2021/11/01 MySQL
Vue组件更新数据v-model不生效的解决
2022/04/02 Vue.js