zoukankan      html  css  js  c++  java
  • 0925-0926 函数注意点

    function 函数名 ([arg1][,arg2][,arg3]...[,arg4]) {

      代码段

      return 返回值;

    }

    函数可以没有返回值
    也可以有一个返回值
    不可能有多个(单独)返回值

    函数名命名与变量,常量命名规范相同.
    函数名不区分大小写,面向对象里, 方法(理解成函数),也不区分大小写.。
    函数名必须是唯一的,即函数名不能和已经存在的函数重名。

    声明函数时,的参数---> 叫形式上的参数, 形参
    调用函数时,的参数---> 叫实际传递的参数,实参.
    说白了:
    形参在函数体内提供?? -->变量名
    实参在函数体内提供?? -->值

    如果实参少于形参,没对应上,warning警告,并尽量往下执行.

    如果实参多于形参,后面多出来的实参,将会被舍弃掉. 没有其他副作用.

    如果参数有默认值的话,要把该参数,写到最后面,若在前面,对应位置留空会报错

    如果某个有默认值的形参,对应位置传了实参
    那么,实参的值 将要覆盖 默认值.

    作用域 js 会往外层找,php不会

    当函数语句运行完之后,执行权就交回.
    或者是碰到 return 之后,函数也会交回执行权.

    没有return 或者 return; $s=xxx();echo $s; 结果null;

    return不能返回多个单独的值。复合值除外。

    /*
    function t3() {
        return 3,9;  // 语法错误
    }
    */

    动态函数

    即 函数的名字 可以用变量来表示.同样适合于类名

    $func();

    php中引用的用法:
    1. 变量的引用赋值: $a = &$b
    2. 函数调用时的引用参数传递
        1) 早期php是在调用时通过&符号传递引用类型的变量, 比如: func(&$arg);
        2) 后来, 函数的引用类型参数被规定为需要在函数声明时定义, 不如: function func(&$arg);
           注: 引用声明时定义引用类型参数后, 运行时引用参数传递被废弃, 需要在php.ini中增加allow_call_time_pass_reference来开启.
    3. 函数返回引用类型, 这种应用方式需要声明函数时, 在函数名前增加&符号, 并且, 在调用时, 要用引用赋值方式, 比如:

    function &func() {
        return $a;
    }
    $a = func();  //这种调用方式得到的不是引用传值
    $a =& func(); //这样调用才是引用传值
    $a = 1;
    function &func(&$a) {
      return $a;
    }
    $b = func($a);
    $c =& func($a);
    $b = 2;
    echo "a: $a, b: $b, c: $c. <br />/n";
    //输出a: 1, b: 2, c: 1.
    //可见对$b的修改不会影响$a
    $c = 3;
    echo "a: $a, b: $b, c: $c. <br />/n";
    //输出a: 3, b: 2, c: 3.
    //可见对$c的修改会影响$a

    错误

    $age = 19;
    
    function foo($num)
    {
        $num = &$age;  
        $num += 5;    
    }
    
    foo(1);
    echo $age;

    引用传参请用function foo(&$num)


    超级全局变量:

    $_GET     //地址栏传参的集合

    $_POST   //post方式传递来的参数集合

    $_COOKIE

    $_REQUEST  // GET POST COOKIE的集合

    $_FILES       //文件上传

    $_ENV         //php服务器环境

    $_SESSION   //用户登录

    $GLOBALS   //全局变量的注册表,访客的一些信息 能找到声明过的所有页面变量

    $_SERVER     //服务器参数

     global关键字,用在变量名前,声明:这个变量用的是"变局范围"内的$age 而不要在局部内生成$age

    1: 通过引用传参,能影响全局变量
    2: 通过global声明, 也能直接使用外部的变量 (不推荐,好多公司明确禁止使用global,自己想想危害)
    3: 直接操作超级变局变量.

     bool function_exists(string function name)

     $GLOBALS['var1'] = 5; var1就 == 5了

    我们通过$GLOBALS可以操作普通的全局变量.

  • 相关阅读:
    javaweb 最简单的分页技术
    Jquery选择器小结
    JSON 初探
    C# GridView 的使用
    C# 操作数据库
    Java中String为什么是不可变
    Eclipse使用技巧小结
    Java File类方法使用详解
    JSP基础语法总结
    JSP取得绝对路径
  • 原文地址:https://www.cnblogs.com/zy2012/p/3384297.html
Copyright © 2011-2022 走看看