网络安全 频道

手动删除“sxs.exe病毒”方法

【IT168技术文档】
1.1 什么是函数呢?


将一些重复的过程嵌入在一个命名的代码块中,然后在必要的时候调用这个名.这个代码块称为函数(function);

2.1.1创建函数:

php提供了一个预定义的语法模式来定义一个函数,如下:
function function_name(paramenters){ 
function-body
}
例如下面的函数:
function footer(){ 
echo "<p><a href=\"http://www.phpno.com\">新疆PHPer交流论坛</a></p>";
}
这样定义后可以在任何地方调用:
<?php 
footer();
?>
2.1.2 按值传递参数:

向函数传递数据是常用的功能.例如要比较两个数的大小:
function Max($a,$b){
$max=$a>$b?$a:$b; //这里用到一个三元运算,即当$a>$b时,$max=$a,否则$max=$b
}
在这里函数接受了两个参数,$a和$b,可以这样调用函数:
Max(6,8);
也可以向函数传递变量:
2.1.2-L1
<?php
$a=6;
$b=8;
Max($a,$b);
?>
这中方式称为按值传递或者传值(passing by value),这样的话,函数范围内对这些值的任何改变都在函数外部被忽落掉.2.1.3 按引用传递参数:

这种方式区别与2.1.2的方式,它可以让函数内部对参数的改变在外部得到体现,按引用传递参数(也称传引用)要在参数前面加上&符号.
例2.1.3-L1
<?php 
$a=2006;
$b=2007;
function cont(&$a,$b){
$a+=$b;
$b+=$a;
}
cont($a,$b);
echo "a:".$a."<br/>";
echo "b:".$b."<br/>";
?>
输出的应该是:
a的值是:4013
b的值是:2007
此时$a已经变为4013,而b并没有变化.

2.1.4 默认参数值:

给函数的参数设置一个默认值后,如果在没有提供这个参数的时候,函数就会把这个默认值赋值给该参数.
<?php
$a=2007;
function cont($a,$b=2006){
echo $b;
}
cont($a);
?>
输出为:2006
给定参数默认值的时候,注意必须是常数表达式,而不能指定函数调用或变量等非常量值.

2.1.5 可选参数:

你也可以设置某参数为可选(optional)参数,不过这个参数要放在参数列的最后一位,并且要设置默认值为空:
function sum($a,$b,$c=''){
$sum=$a+$b+$c;
echo $sum;
}
如果你有多个参数的时候,也可以选择性的传递参数:

function sum($a,$b='',$c=''){ 
echo $a+$b+$c;
}
调用sum的时候可以只传递$a和$c:

sum(2046,'',2008); 
2.1.6 从函数返回值

一般情况下,脚本的结果可能取决与函数的结果,也可能取决与在执行函数时对数据的修行,而由于变量作用域的差异,函数体无法很容易的将信息传递给调用者,这个时候就可以通过
return关键字向调用者传递数据.

1.return()
return()语句可以向函数调用者返回任意的数值,将程序控制权返回到调用者的作用域.如果return()在全局作用域内调用,将终止脚本的执行.
返回刚才的sum()函数,计算的结果暂时不能显示给用户,而是将这个值返回给调用块:
function sum($a,$b,$c=''){
$sum=$a+$b+$c;
return $sum;
}
也可以不需要赋值给$sum:
function sum($a,$b,$c=''){ 
return $a+$b+$c;
}
2.返回多个值

这里以构造函数list()为例说明返回多个值:
例:2.1.6-L1
<?php
function getmicrotime(){
return explode(" ",microtime());
}
list($msec, $sec)=getmicrotime();
echo $msec."<br/>";
echo $sec."<br/>";
?>
注解: micrtime()函数是返回当前 UNIX 时间戳和微秒数,返回格式为“msec sec”的字符串,其中 sec 是当前的 Unix 时间戳,msec 是微秒部分。字符串的两部分都是以秒为单位返回的。
explode()是使用一个字符串分割另一个字符串,这里用来分割micrtime()得到的两个值组成的一个字符串.

调用getmicrotime()函数后,此时返回的是两个值,$msec和$sec;
这个函数可以丰富一下用来做检测程序运行时间
<?php
function getmicrotime(){
list($usec, $sec) = explode(" ",microtime());
return ((float)$usec + (float)$sec); //注意这里只是返回一个两个数值的和
}
$time_start = getmicrotime();
for($i=0;$i<1000;$i++){
echo $i;
}
$time_end = getmicrotime();
echo "\n\n[执行时间: " . ($time_end - $time_start) . "秒]\n\n";
?>
0
相关文章