php函数的常用方法及注意之处小结

 更新时间:2011年07月10日 01:26:32   作者:   我要评论
为了方便ide的管理及代码提示功能,我们在所有函数命名时使用fun_开头
复制代码 代码如下:

<?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 Zip解压 文件在线解压缩的函数代码

    PHP Zip解压 文件在线解压缩的函数代码

    PHP在线解压缩Zip 文件函数代码,需要在线zip解压的朋友可以参考下。
    2010-05-05
  • Lumen timezone 时区设置方法(慢了8个小时)

    Lumen timezone 时区设置方法(慢了8个小时)

    今天用 Lumen 框架写代码时, 也是初次体验 Lumen, 遇到了一个问题, 从金沙国际官网里查出的时间比金沙国际官网里保存的 TIMESTAMP 时间慢了8个小时, 很明显这是一个时区设置的问题, 本以为可以在1分钟内解决的, 但是我错了
    2018-01-01
  • php实现的http请求封装示例

    php实现的http请求封装示例

    这篇文章主要介绍了php实现的http请求封装,结合实例形式分析了php基于curl的http请求操作功能实现技巧与使用方法,需要的朋友可以参考下
    2016-11-11
  • 通过PHP的内置函数,通过DES算法对数据加密和解密

    通过PHP的内置函数,通过DES算法对数据加密和解密

    数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为密文,使其只能在输入相应的密钥之后才能显示出本来内容,通过这样的途径来达到保护数据不被非法人窃取、阅读的目的
    2012-06-06
  • php使用curl出现Expect:100-continue解决方法

    php使用curl出现Expect:100-continue解决方法

    这篇文章主要介绍了php使用curl出现Expect:100-continue解决方法,实例分析了Expect:100-continue出现的原理与解决方法,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • PHP实现浏览器格式化显示XML的方法示例

    PHP实现浏览器格式化显示XML的方法示例

    这篇文章主要介绍了PHP实现浏览器格式化显示XML的方法,涉及php针对xml节点的创建、添加、格式化显示等相关操作技巧与注意事项,需要的朋友可以参考下
    2019-01-01
  • php连接sftp的作用以及实例代码

    php连接sftp的作用以及实例代码

    在本篇文章里小编给各位整理的是关于php连接sftp的作用以及实例代码,有需要的朋友们可以参考学习下。
    2019-09-09
  • php实现的微信红包算法分析(非官方)

    php实现的微信红包算法分析(非官方)

    这篇文章主要介绍了php实现的微信红包算法,以实例形式分析了拼手气红包的相关随机算法技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-09-09
  • php自定义函数实现二维数组排序功能

    php自定义函数实现二维数组排序功能

    这篇文章主要介绍了php自定义函数实现二维数组排序功能,涉及php针对数组的判断、遍历、转换、排序等相关操作技巧,需要的朋友可以参考下
    2016-07-07
  • PHP封装的简单连接MongoDB类示例

    PHP封装的简单连接MongoDB类示例

    这篇文章主要介绍了PHP封装的简单连接MongoDB类,涉及php针对MongoDB金沙国际官网的简单连接、数据插入、查询等相关操作技巧,需要的朋友可以参考下
    2019-02-02

最新评论