<!DOCTYPE unspecified PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<?php
//1. 简单函数示例,创建一个n*m的table
/* PHP中的函数格式,其中可以没有返回值
* function(参数1,参数2...) {
* 函数体
* return 返回值;
* }
* 在函数定义之前和之后都可以调用函数
*/
create_table("3*4的表格", 3, 4); function create_table($tablename, $rows, $cols) {
echo "<table align='center' border='1' width='".($cols*100)."'/>";
echo "<caption><h1>{$tablename}</h1></caption>";
for ($i = 1; $i <= $rows; $i++) {
echo "<tr>";
for ($j = 1; $j <= $cols; $j++) {
echo "<td width='100'>".($i*$cols-$cols+$j)."</td>";
}
echo "</tr>";
} echo "</table>";
} create_table("5*6的表格", 5, 6); // 2. 局部变量、全局变量与静态变量
/* 局部变量:函数内部声明,作用域仅限于函数内部
* 全局变量:在函数中使用要用global加载全局变量,或者使用$GLOBALS数组
* 静态变量:在局部变量前加static使改变量为所有对该函数的调用间共享
* */
$a = 3;
$b = 4;
globalvar();
globalvar();
function globalvar(){
static $c = 0; //静态局部变量
$c++;
global $a; //不加这一句直接输出$a会报错
echo $a;
echo $GLOBALS['b']; //使用全局数组访问$b
echo $c; //分别打印1,2
echo "<br/>";
} // 3. 按引用传值,在变量前加上&符将按引用传值,这种情况下只能传变量而不能传一个值
$a = 20;
yinyong($a);
function yinyong(&$a){
$a = 30;
}
echo $a."<br/>"; // 4. 默认参数,和C++一样
function outme($name, $age="20"){
echo $name.",".$age."<br/>";
}
outme("张三"); // 5. 可变个数参数,用func_get_argc()来得到参数列表
function more_argc(){
$args = func_get_args();
for ($i = 0; $i < count($args); $i++)
echo "参数".($i+1).":".$args[$i]."<br/>";
}
more_argc("11","22","33"); // 6.回调函数,使用函数作为参数
/* 两种方法可以使用回调函数
* 1.使用变量函数名
* 2.使用call_user_func_array()来调用
* 类静态函数和对象的方法回调有不同的地方,在下面实例说明
*/
//下面使用字符串来调用函数,但这种方法不直观,并不常用
function varfunc($func) {
echo $func("varfunc_outstring");
}
function outstring($str) {
echo $str."<br/>";
}
varfunc("outstring");
//下面使用call_user_func_array()来回调
call_user_func_array("outstring", array("varfunc_outstring"));
//下面分别调用类静态函数和成员函数
class Class_varfunc {
static function fun1($str){
echo $str."<br/>";
}
function fun2($str){
echo $str."<br/>";
}
}
//调用类静态函数,直接用类名加方法名即可
call_user_func_array(array("Class_varfunc", "fun1"), array("varfunc_outstring"));
//调用类非静态函数,要用对象的引用
call_user_func_array(array(new Class_varfunc(), "fun2"), array("varfunc_outstring"));
?> </html>

执行结果

PHP学习笔记03——函数的更多相关文章

  1. OpenCV 学习笔记03 findContours函数

    opencv-python   4.0.1 1 函数释义 词义:发现轮廓! 从二进制图像中查找轮廓(Finds contours in a binary image):轮廓是形状分析和物体检测和识别的 ...

  2. OpenCV 学习笔记03 边界框、最小矩形区域和最小闭圆的轮廓

    本节代码使用的opencv-python 4.0.1,numpy 1.15.4 + mkl 使用图片为 Mjolnir_Round_Car_Magnet_300x300.jpg 代码如下: impor ...

  3. C++ GUI Qt4学习笔记03

    C++ GUI Qt4学习笔记03   qtc++spreadsheet文档工具resources 本章介绍创建Spreadsheet应用程序的主窗口 1.子类化QMainWindow 通过子类化QM ...

  4. SaToken学习笔记-03

    SaToken学习笔记-03 如果排版有问题,请点击:传送门 核心思想 所谓权限验证,验证的核心就是一个账号是否拥有一个权限码 有,就让你通过.没有?那么禁止访问! 再往底了说,就是每个账号都会拥有一 ...

  5. Matlab学习笔记 figure函数

    Matlab学习笔记 figure函数 matlab中的 figure 命令,能够创建一个用来显示图形输出的一个窗口对象.每一个这样的窗口都有一些属性,例如窗口的尺寸.位置,等等.下面一一介绍它们. ...

  6. matlab学习笔记 bsxfun函数

    matlab学习笔记 bsxfun函数 最近总是遇到 bsxfun这个函数,前几次因为无关紧要只是大概看了一下函数体去对比结果,今天再一次遇见了这个函数,想想还是有必要掌握的,遂查了些资料总结如下. ...

  7. 机器学习实战(Machine Learning in Action)学习笔记————03.决策树原理、源码解析及测试

    机器学习实战(Machine Learning in Action)学习笔记————03.决策树原理.源码解析及测试 关键字:决策树.python.源码解析.测试作者:米仓山下时间:2018-10-2 ...

  8. matlab学习笔记13_1 函数返回值

    一起来学matlab-matlab学习笔记13函数 13_1 函数返回值 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 https://blog.csdn.net/qq_36556 ...

  9. Redis:学习笔记-03

    Redis:学习笔记-03 该部分内容,参考了 bilibili 上讲解 Redis 中,观看数最多的课程 Redis最新超详细版教程通俗易懂,来自 UP主 遇见狂神说 7. Redis配置文件 启动 ...

随机推荐

  1. HDU 1316 How Many Fibs?(java,简单题,大数)

    题目 /** * compareTo:根据该数值是小于.等于.或大于 val 返回 -1.0 或 1: public int compareTo(BigInteger val) 将此 BigInteg ...

  2. iOS验证码倒计时(GCD实现)

    + (void)verificationCode:(void(^)())blockYes blockNo:(void(^)(id time))blockNo { __block ; //倒计时时间 d ...

  3. 在Unity中使用贝塞尔曲线(转)

    鼎鼎大名的贝塞尔曲线相信大家都耳熟能详.这两天因为工作的原因需要将贝塞尔曲线加在工程中,那么MOMO迅速的研究了一下成果就分享给大家了哦.贝塞尔曲线的原理是由两个点构成的任意角度的曲线,这两个点一个是 ...

  4. 用C语言简单加密解密

    使用char表示的字符型数据,在本质上与我们前面介绍的整型数据并无太大的区别,只是char类型占用的内存字节数更小,能够表示的数据范围更小而已.在使用上,char被专门用来表示C语言的字符集中的各种字 ...

  5. QString::toWCharArray可以拷贝到宽字符串里

    wchar_t * sourcepath=new wchar_t[MAX_PATH];int s1=str.toWCharArray(sourcepath); sourcepath[s1]=0;

  6. [PHP]利用XAMPP搭建本地服务器, 然后利用iOS客户端上传数据到本地服务器中(三. PHP端代码实现)

    一.安装XAMPP   http://www.cnblogs.com/lidongxu/p/5256330.html 二. 配置MySql http://www.cnblogs.com/lidongx ...

  7. 机器人学 —— 机器人感知(Kalman Filter)

    对于机器人感知任务而言,经常需要预判物体的运动,保证机器人在物体与自身接触之前进行规避.比如无人机与障碍物的碰撞,足球机器人判断足球的位置.预判的前提是对当前状态进行准确的估计,比如足球的速度,障碍物 ...

  8. istream, outstream使用及常见错误

    使用方法: 使用filebuf打开文件,并拷贝给istream/ostream. 如下面的例子中,实现读取并处理deseq文件夹下所有文件,输出到ostream fw. code: #include& ...

  9. 分布式缓存系统热点key解决方案

    1. 读访问量高(万级别及以上),读访问远大于写访问 这种情况典型的业务场景之一就是存储配置信息,配置信息一般数据量较小,更新频率低,但读访问量高.这种场景有两种方法优化: a. 对同一个key存储多 ...

  10. POJ 3468 A Simple Problem with Integers (伸展树区间更新求和操作 , 模板)

    伸展数最基本操作的模板,区间求和,区间更新.为了方便理解,特定附上一自己搞的搓图 这是样例中的数据输入后建成的树,其中的1,2是加入的边界顶点,数字代表节点编号,我们如果要对一段区间[l, r]进行操 ...