逐步学习PHP(4)PHP函数补编2

1。解决范围问题

在最后一节中,我们将讨论PHP中函数的作用域。如果这个班级不够,你会觉得更有说服力。

那么,我们如何访问PHP函数中的外部变量呢

在PHP中,有一个称为全局作用域的概念。也就是说,如果你不使用函数(将来会有类概念),那么你创建的变量就可以在页面上的任何地方访问,那么,我们如何解决身体中的问题呢

我们可以使用全局关键字:< PHP
$name =生;
功能测试()
{
全局名;
回声(名称);
}
测试();
>




通过这种方式,我们将相当于获得全局变量$名称的引用,而无需重新创建名称变量。

在PHP手册,全局变量的使用是相当于创建一个引用的全局变量的变量为一个字。然后我们可以通过模仿这种语义写这样的代码:<PHP
$name =生;
功能测试()
{
温度=美元美元名字全局{ };
回声(临时);
}
测试();
>




事实上,这两者是等价的代码,变量的使用看起来很麻烦,但这实际上避免了很多副作用,如java,C #是一种面向对象的语言,但在PHP中,页面上的一切,甚至多个页面,所以如果你不使用这种方式,很容易生产函数的副作用(误差修正)。

2。默认参数

你听说过这个概念,第一时间应该在C++,C #学习后,你还没有碰过的概念,而是一个人非常喜欢它。

这样,就不必为函数编写一堆重载函数。

写一个最简单的例子:< php
功能测试($name =生)
{
回声(名称);
}
测试();
测试(其他);
>




难道不需要写重载函数吗

但这里有两点值得注意。

设置参数的默认值时,a只能设置最简单的常数,而不是复杂表达式。

B.需要设置默认值的参数必须放在最后。这类似于C #可变参数。

三.可变参数

C #,有一个概念称为可变参数,和一个简单的例子:protected void linkbutton1_click(object sender,EventArgs e)
{
响应。写(getsum(1, 2, 3,4, 5));
}
市民int GetSum(params int { }元素)
{
int=0;
对于(int = i 0;i <元素;长度;i + +)
{
总和=元素{ };
}
收起回复;
}



在编写示例之前,让我先介绍三个与变量参数相关的函数。

func_get_args()的所有参数,返回数组的函数

func_get_arg()返回一个特定的参数的参数

func_num_args()返回参数的个数。

好的,然后写一个版本对应的C #版<< PHP PHP版本。
GetSum()函数
{
如果(func_num_args()= = 0)
{
返回0;
}
美元= 0;
为($我= 0;$我< func_num_args();$我+ +)
{
总和+ = func_get_arg美元(合一);
}
退回美元;
}
回声(GetSum(1,2,3,4));
>






4。变量的函数

我不知道为什么要把它翻译成这个名字,它实际上是根据变量的名称调用相应的函数。

这是类似于这种评价在JS,如下:
执行功能(函数名)
{
eval(函数名+());
}
功能测试()
{
警报(111);
}
执行(测试);




这是传递一个函数名,然后执行相应的函数。所以在PHP中,它实际上是一样的,而且更简单。
功能测试(功能)
{
函数();
}
函数第一(){回声();}
测试();
>