自定义函数
PHP中在同一个脚本,函数名不能重复;在js中可以有重复名
function 函数名(形参1,形参2){ //函数不固定的数据,设置为形参,函数名不区分大小写 //语句块 return 表达式//执行完毕 };
调用函数 :函数名(实参)
给形参设置默认值,
PHP:
function arraySplice($x,$y=null){//直接等于默认值或设置null后在给默认值;
if( is_null($y)){
$y=xxxx;
}
}
js :
function arraySplice($arr,$y,$len){
$len=$len||$arr.length;
}
实参传值,地址传递
//实参变量传递给形参变量的方式(值、地址)
function arr(&$a,&$b){}
//内部改变$a,$b的值,传入的实参也会改变
//值传递
function alter($a,$b){
$c = $a;
$a = $b;
$b = $c;
}
$x = 10;
$y = 20;
alter(10,$y); //$x传递给$a是值传递,$y传递给$b是值传递
echo '$x='.$x.',$y='.$y.'<br />';
//地址传递,是在形参变量前加&符号
function change(&$a,&$b){
$c = $a;
$a = $b;
$b = $c;
}
change($x,$y); //$x传递给$a是地址传递,$y传递给$b是地址传递
echo '$x='.$x.',$y='.$y.'<br />';
//change(23,$y); //这是错误使用,因为当形参前加了&符号所对应的实参一定是变量
局部变量和全局变量
PHP:在函数内部声明的变量就是局部变量,作用域是函数内部;
在函数中声明的变量要在全局中使用,要用global关键词声明;global $a,$b;
可以同时声明多个变量
<?php
function sum(){
global $a,$b;//可以声明多个;
$a=5;
echo $a;
}
sum();
?>
js :函数内部用var 声明的是局部变量;
当参数不固定时,可以使用获取实参来处理func_get_args();
<h2>实参不固定时</h2>
<?php
//获取传入参数中最大值;
function fetchMax(){
$args=func_get_args();//获取当前实参,返回数组
$max=$args[0];
for($i=$max,$len=count($args);$i<$len;$i++){
if($args[$i]>$max){
$max=$args[$i];
}
}
return $max;
}
echo fetchMax(1,5,8);
?>
转向指定的页面;
js:echo '<script>location.href="aaa.php";</script>'
php:header('location:aaa.php')