变量的作用域问题和常用系统内部函数-php

2025-11-05 01:43:15

1、1.变量的作用域问题

作用域,就是一个变量的“有效”(可用)的范围;

有3种作用域,也分别对应3种不同作用域的变量:

1, 局部作用域,局部变量:

其实就是指一个函数的内部;

局部作用域有“多个”,因为每个函数内部都是一个局部作用域;

局部变量:就是在一个局部作用于中定义的变量。它只能在该局部作用域中使用。

2,全局作用域,全局变量:

其实就是指函数的外部;

全局作用域,只有“一个”,即全局作用域就是那些所有不在函数内部的区域范围;

全局变量:就是在函数外部定义的变量;

特别注意:php中,全局作用域,和局部作用域,是“分离”的,“没有重叠”的,“泾渭分明”的;

3,超全局作用域,超全局变量:

其实就是指“所有区域”——类似js中的全局;

即:所有函数的内部和外部,合在一起,称为“超全局”。

超全局变量:只有那几个系统变量($_POST, $_GET, $_SERVER等 ) 是超全局变量,我们不能自己定义出超全局变量;

图示如下:

变量的作用域问题和常用系统内部函数-php

2、2.代码演示:

变量的作用域问题和常用系统内部函数-php

3、3.常用系统内部函数

跟函数有关的函数

function_exists(“函数名”):判断一个函数是否已经存在;

func_get_arg( $n ):在函数内部获得第n个实参(n从0开始算起)

func_get_args():在函数内部获得所有实参

func_num_args():在函数内部获得实参个数

字符串有关常用函数:

输出与格式化:echo , print, printf, print_r, var_dump.

字符串去除与填充:trim, ltrim, rtrim, str_pad

字符串连接与分割:implode, join, explode, str_split

字符串截取:substr, strchr, strrchr,

字符串替换:str_replace, substr_replace

字符串长度与位置: strlen, strpos, strrpos,

字符转换:strtolower, strtoupper, lcfirst, ucfirst, ucwords

特殊字符处理:nl2br, addslashes, htmlspecialchars, htmlspecialchars_decode,

常用数学函数

max, min, round, ceil, floor, abs, sqrt, pow, round, rand

$v1 = rand(10,  17); //获得10~17之间的随机整数!

常用时间函数

time:获得当前时间(精确到秒)

microtime:获得当前时间(可以精确到微秒)

mktime:创建一个时间数据

date:将一个时间转换为某种字符串形式

idate:取得一个时间的某个单项数据值,比如idate(“Y”)取得年份数

strtotime:将一个字符串“转换”为时间值;

date_add:将一个时间进行“加减”时间单位,比如“今天的100天之后是那一天”;

date_diff:计算2个时间之间的“差”;

date_default_timezone_set:在代码中设置“时区”

date_default_timezone_get:在代码中获取“时区”

有关编程思想

递归思想

一句话概括:

在一个函数内部的语句中,如果出现调用该函数本身的语句,则此时就称为“递归调用”;

递归原理:

变量的作用域问题和常用系统内部函数-php

4、4.递归应用:

使用递归,来求“n的阶乘”:

阶乘的数学规定:

1,任何一个正整数的阶乘,是这个正整数乘以比他小1的整数的阶乘的乘积;

即:n的阶乘 = n * (n-1)的阶乘;

2,  1的阶乘是1;

需求:求5的阶乘:

变量的作用域问题和常用系统内部函数-php

5、5.递归函数(递归调用,递归思想)的代码模式为:

function  函数名( $ n ){

if($n是某种特殊值){

return  特殊结果;

}

else{

$result  = 对 函数名( $n-1 )的一个计算结果

return  $result;

}

}

原理图示:

变量的作用域问题和常用系统内部函数-php

6、6.递推思想

描述:

如果要求得一个大问题(n级问题)的结果,且如果已知如下2个条件:

1,已知n-1级问题,可以轻松求得n级问题的答案;

2,该大问题的同类问题的最小一级的答案是已知的;

则我们可以简单使用递推模型(思想)来得到答案,如下所示:

$WENTI1 = 已知; //$WENTI1表示1级问题(最小一级)问题的答案;

$WENTI2 = 对 $WENTI 计算;

$WENTI3 = 对 $WENT2 计算;

。。。。。。

$WENTI(n) = 对 $WENTI(n-1) 计算;

递推思想应用:

计算5的阶乘:

变量的作用域问题和常用系统内部函数-php

7、7.代码模式:

$qian = 已知问题的最小答案;

for( $i = 第2级;  $i <= 最大级n;  ++$i){

$result  =  对$qian做简单运算;

$qian  =  $result;  //将当前求得的结果($result)当做下一次要求的结果的“前一个数”;

}

echo  “结果为:”  .  $result;

 

图示如下:

变量的作用域问题和常用系统内部函数-php

8、8.使用递推解决斐波那契数列问题:

斐波那契数列:1, 1, 2, 3, 5, 8,13, 21, 34,.....

规律:

第n个数,是第n-1和第n-2个数的和,

其中:第1个是1,第2个也是1;

变量的作用域问题和常用系统内部函数-php

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢