内容发布更新时间 : 2024/12/26 17:38:53星期一 下面是文章的全部内容请认真阅读。
博学谷——让IT教学更简单,让IT学习更有效
2、 练习目标
? 掌握全局变量在函数内部使用的方法
3、 需求分析
全局变量是不能直接在函数内部使用的,需要使用global关键字,或使用$GLOBALS超全局预定义数组变量。
现在举例说明:假设在函数外定义一个全局变量$link ,用于存储连接数据库的资源,然后我们在函数getUsersInfo()函数中直接使用$link,与在函数getUsersInfo()中使用关键字global声明$link,或是使用$GLOBALS超全局预定义数组变量,进行对比。
4、 设计思路(实现原理)
1)编写PHP文件link.php,获取连接数据库的资源$link,设定字符集,选择数据库。
2)在link.php中编写getUsersInfo()这个函数,执行获取用户信息语句,并同时传递$link。
二、案例实现
1、在link.php中定义getUsersInfo函数,代码如下:
$link = @mysql_connect('localhost','root','123456') or die('数据库连接失败!');
mysql_query('set names utf8',$link); $mysql_select_db('mysql',$link);
function getUsersInfo(){ }
getUsersInfo();
$result = mysql_query(\while($row = mysql_fetch_assoc($result)){ }
print_r($row);
运行程序,结果如下图所示:
对比,代码如下:
6
博学谷——让IT教学更简单,让IT学习更有效
$link = @mysql_connect('localhost','root','123456') or die('数据库连接失败!');
mysql_query('set names utf8',$link); mysql_select_db('mysql',$link);
function getUsersInfo(){ }
getUsersInfo();
global $link;
$result = mysql_query(\while($row = mysql_fetch_assoc($result)){ }
print_r($row);
运行程序,结果如下图所示:
对比,代码如下:
$link = @mysql_connect('localhost','root','123456') or die('数据库连接失败!');
mysql_query('set names utf8',$link); mysql_select_db('mysql',$link);
function getUsersInfo(){ }
getUsersInfo();
$result = mysql_query(\while($row = mysql_fetch_assoc($result)){ }
print_r($row);
运行程序,结果如下图所示:
7
博学谷——让IT教学更简单,让IT学习更有效
对比,代码如下:
$link = @mysql_connect('localhost','root','123456') or die('数据库连接失败!');
mysql_query('set names utf8',$link); mysql_select_db('mysql',$link);
function getUsersInfo($link){ }
getUsersInfo($link);
$result = mysql_query(\while($row = mysql_fetch_assoc($result)){ }
print_r($row);
运行程序,结果如下图所示:
三、案例总结
全局变量在函数的局部使用,必须通过: 1、通过参数传递,传值和传引用。 2、通过global关键字来提升。
3、通过$GLOBALS预定义超全局数组变量。
8
博学谷——让IT教学更简单,让IT学习更有效
案例3-6 递归函数 一、案例描述
1、 考核知识点 递归函数
2、 练习目标
? 熟练掌握递归函数的妙处
3、 需求分析
递归函数通常有很高的使用价值,常用来将复杂的问题分解为简单的并相同的情况,反复做这种处理直到问题解决。
现在举例假设:有一只猴子摘了一堆桃子,当即吃了一半,可是桃子太好吃了,它又多吃了一个,第二天它把第一天剩下的桃子吃了一半,又多吃了一个,就这样到第十天早上它只剩下一个桃子了,问它一共摘了多少个桃子?
4、 设计思路(实现原理)
1)编写一个函数peach($n),每次都判断一下$n 是否等于1,如等于1,则返回1;如不相等,则
$n -1 ,再调用自身peach(),并传递$n-1的结果。
二、案例实现
1、peach()函数,代码如下
function peach($n) { }
echo peach(2), '
'; echo peach(3), '
'; echo peach(9), '
'; echo peach(10), '
';
if($n == 1){ }
return 2*(peach($n - 1) + 1);
return 1;
运行程序,结果如下图所示:
9
博学谷——让IT教学更简单,让IT学习更有效
三、案例总结
1、递归函数必须要有结束的条件,否则就是死循环。 2、一定要找到合适的递归条件。
3、递归函数的运算量很大,所以要谨慎使用。
案例3-7 explode()函数 一、案例描述
1、 考核知识点
explode()函数
2、 练习目标
? 熟练explode()函数的用法
3、 需求分析
PHP提供的内置的字符串函数,功能非常的强大,很容易的就能实现我们想要的业务逻辑,减少我们编程的难度,其中explode()函数可以对字符串进行分割操作。
现在举例假设:字符串“open_door”转换成“OpenDoor”、“make_by_id”转换成“MakeById”。
4、 设计思路(实现原理)
1)编写一个函数change_str($str)。
2)将传递过来的$str字符串,转换成数组$arr。
3)把数组$arr中的每个元素的开头字符转换成大写,并放回数组$arr中。 4)把数组$arr转换成字符串返回。
二、案例实现
1、编写函数change_str,代码如下:
*@param $str string 要转换的字符串 *@return string 转换后的字符串 */
function change_str($str){
$arr = explode('_',$str);
$arr = array_map('ucfirst',$arr); return implode('',$arr); }
2、定义测试数据,代码如下:
//测试
$str1 = \
10