昨天帮同学研究php对mysql进行封装操作的时候,无意中看到了call_user_func_array这个函数,好歹我php也用了一年多了,竟然还有这么多我不知道的功能函数,因此我们的原则是宁肯多学,不能放过,下面我会举几个例子给大家介绍一下这几个冷门的php函数。话不多说,gogogogo

第一个函数,func_num_args,我们先来看一下php的manual对这个函数的解释

func_num_args

(PHP 4, PHP 5)

func_num_argsReturns the number of arguments passed to the function

顾名思义了,这个函数的功能就是返回传递给这个函数参数的多少,我们写一个简单的函数来验证一下

<?php
function TestPhpFunction1() {
$number = func_num_args ();
echo "传递给该函数参数数目为: " . $number . "<br>";
}
TestPhpFunction1 ( 3, 4, 5, 6, 7 );
?>
输出结果:传递给该函数参数数目为: 5

第二个函数,func_get_arg,func_get_args我们也来看一下php的manual对这个函数的解释

func_get_arg

(PHP 4, PHP 5)

func_get_argReturn an item from the argument list

继续英文翻译,返回指定参数列表中的一项

func_get_args

(PHP 4, PHP 5)

func_get_argsReturns an array comprising a function's argument list

翻译一下,应该是返回参数列表数组,写个函数验证一下

<?php
function TestPhpFunction2() {
$parameter_nums = func_num_args ();
for($i = 0; $i < $parameter_nums; $i ++) {
echo "第" . $i . "个参数为" . func_get_arg ( $i ) . "<br>";
}
echo "传递的参数数组为: <br>";
$parameters = func_get_args ();
print_r ( $parameters );
}
TestPhpFunction2 ( 3, 4, 5, 6, 7 );
?>

输出结果为:

第0个参数为3
第1个参数为4
第2个参数为5
第3个参数为6
第4个参数为7
传递的参数数组为:
Array ( [0] => 3 [1] => 4 [2] => 5 [3] => 6 [4] => 7 )


刚才同学又跟我讨论了一个php操作mysql预编译的指令,有点使用上的问题,跟大家分享一下,照例贴出来php manual的解释

mysqli_stmt::bind_param

mysqli_stmt_bind_param

(PHP 5)

mysqli_stmt::bind_param--mysqli_stmt_bind_paramBinds variables to a prepared statement as parameters

这个mysql->prepared是防止客户端sql注入最常用的手段之一,而这个函数正是对客户端的输入进行参数绑定

boolmysqli_stmt::bind_param(string$types,mixed&$var1[,mixed&$...] )

其中type分为4种类型:

i:整型

b:浮点型

s:字符串类型

d:blob类型


后面的var表示客户端输入的具体变量,今天偶然发现每个变量前都加入了取地址运算符&,很诡异啊,我之前操作mysql的时候没加,为什么还没出问题呢?

具体操作了一下,也就是值传递和引用传递的关系,因为再绑定参数之后,在$stmt->execute之前,我不会再进行其它对绑定参数大小修改的操作了,所以之前的都不会有问题






更多相关文章

  1. PHP 源码 —— is_array 函数源码分析
  2. php中的date函数中时区问题
  3. php时间函数——获取过去24小时内每个小时的节点
  4. [轉]PHP官方网站,php官方论坛,中文函数手册下载
  5. PHP不区分大小写数组搜索函数[duplicate]
  6. php中的PCRE 函数,正则表达式处理函数。
  7. php image函数,操作压缩图片时,png图片压缩后整个图片变黑
  8. PHP中钩子函数的实现与认识
  9. 如何通过.click jQuery函数检索html元素值与从MySQL检索的数据?

随机推荐

  1. 【前端词典】三种处理滚动穿透问题方案的
  2. Ansible 之 yum安装
  3. 身在职场,这6条大实话潜规则你知道吗?
  4. jQuery五彩火焰背景的3D进度条插件
  5. 报错ERROR: Failed to Setup IP tables:
  6. nginx配置ssl证书访问不了https网站
  7. 学历造假Offer被撤,职场诚信是底线
  8. HTML5中国象棋游戏,可自定义难度
  9. 超实用的VueJS滑块组件,支持级联滑动和渐
  10. 面试被问“期望薪资多少”?高情商的人都这