您现在的位置:首页 > 教案格式 > 正文

数组换位置一.介绍 PHP(外文名:PHP: Hyperte(14)

2018-02-02 05:05 网络整理 教案网

定义时可以不给定形参,调用时可以给定任意个数的实参。

<?php
function myFunc(){
  var_dump(func_get_args());  //获得一个函数所接收到的所有实参数据,并结果是一个数组
  var_dump(func_get_arg(1));  //获得一个函数所接收到的第n歌实参数据(n从0开始)
  var_dump(func_num_args());  //获得一个函数所接收到的所有实参数据的个数
}
myFunc(1,2,3,4,5);

引用传递返回值

<?php
function &myFunc(){
  static $result = 0;//静态变量,第一次调用这个函数赋值,再次调用这个函数不会被赋值
  return $result;
}
$v1 = &myFunc();//0
echo $v1;
$v1++;
$v1 = &myFunc();//1
echo $v1;

函数名是变量

<?php
function myFunc($func){
  function f1(){
    echo "function f1";
  }
  $func();
}
myFunc(‘f1‘);

将函数赋值给变量

<?php
$myFunc = function(){
    echo "myFunc";
};//这是赋值,这个分号必须有
$myFunc();

用于能够使用(匿名)函数当作实参的函数(eg:call_user_func_array())

<?php
$arr = array(1,2,3,4,5,6,7);
//求和
$sum = call_user_func_array(function(){
  $arr = func_get_args();
  $sum = 0;
  foreach($arr as $v){
    $sum += $v;
  }
  return $sum;
},$arr);
echo $sum;

局部作用域:只能在所定义的函数范围内使用。

全局作用域:在函数的“外部”范围使用。

php中全局作用域变量函数不能直接使用(js可以)

超全局作用域:就是在函数的内部和外部都可以使用。

静态局部作用域:数据能够在函数退出后仍然保持不丢失。

使用:

局部范围使用global关键字:局部创建同名变量指针指向全局变量对应的数据。

局部范使用$GLOBALS超全局数组来使用全局变量:直接操作全局变量

<?php
$global1 = 123;
$global2 = 456;
function get_global(){
  global $global1;
  echo $global1;//123
  echo $GLOBALS[‘global2‘];//456
  
  unset($global1);
  unset($GLOBALS[‘global2‘]);
};
get_global();
echo "---".$global1;//123
echo $global2;//undefined

在函数内部为$GLOBALS数组添加元素

引用传递方式传参数

引用传递方式传返回值

<?php
function set_global(){
  $GLOBALS[‘local‘] = ‘local‘;
};
set_global();
echo $local;

function get_local1(&$v1){
    $local = ‘local‘;
    $v1 = $local;
}
get_local1($v1);
echo $v1;

function &get_local2(){
    $local = ‘local‘;
    return $local;
}
$v1 = &get_local2();
echo $v1;