zoukankan      html  css  js  c++  java
  • 2017.6.5-1-php函数应用及流程控制

    1.php中全局变量不能在函数中使用,函数内的同名变量相当于新声明的两个变量,没有赋值,相当于两个空值在运算。

    需要用global函数定义

    或使用自定义数组访问。$GLOBALS['one'] 或$GLOBAL["one"];

     

    2.<hr>

    echo "<hr>";         //(horizontal rule).

    3.

     php中默认的是按值传递参数。

    function test($arg){

    $arg=200;

    }

    $var = 100;

    test($var);

    test(100);              //可直接传值

    echo $var;              //不变

    -----------------------------------

    改变全局变量:

    function test1(&$arg){

    $arg = 200;

    }

    $var =100;

    test1($var);           //不能直接传值

    echo $var;             //200 ,

    ----

    php中有很多这样的系统函数。传递一个变量给应用参数,在函数中改变参数变量的值,则传递的变量也会改变、

    例如sort(),key()等函数。

    <?php

      $arr=array{1,5,8,4,6,2,9};

      print_r($arr);                              //排序前

      sort($arr);

      print_r($arr);

    -------------------------

    echo 不是函数,没有返回值。

    print是函数,有返回值,只能打印简单类型变量的值。(如字符,数字)

    print_r 可打印复杂类型变量的值。(如数组,对象)

    ----------------------------------------------

     默认参数的函数

     

    参数是从左到右依次配对,若实参少于形参,则右边的形参不会传值。

    function person($name=“张三”,$age,$sex){}

    person("李四");                                                     //后面的参数没有传递,出现警告

     ---------------------------------

    可变参数函数

    使用func_get_args(),他可以将所有传递给函数的参数当做一个数组返回。

    使用func_num_args(),返回所有参数的数量。

    function more_args(){

    echo "the number of the parameters".count( func_get_args() );

    }

    --------------------------------------

    回调函数:

    1.变量函数。

    将函数名以字符串方式赋给变量$result,然后使用变量名$result()来执行与字符串同名的函数。

    function one($a,$b){return $a+$b;}

    $result="one";

    echo $result(2,3);

    2.应用回调函数

    function filter($fun){

      for($i=0;$i<=100;$i++){

      if($fun($i))

        continue;

        echo $i;

    }

    founction one($num){

      return num%3==0;

    }

    founction two($num){

      return $num==strrev($num);

    }

    fliter("one");

    fliter("two");

    3.使用系统函数call_user_func_array()回调。

    if(call_user_func_array($fun,array($i))                           //其中$fun是调用的函数名,array是传入的参数数组。

    代替

    if($fun($i))

    4.类静态方法和对象的方法回调

    class test1{

      static function fun($arg1,$arg2){}

    }

    class test2{

      function fun($arg1,$arg2){}

    }

    call_user_func_array( array ("test1", "fun"), array("参数1","参数2"));

    静态方法:(类名称字符串,方法名称字符串),(参数1,参数2)

    call_user_func_array( array (new test2(),"fun"), array("参数","参数2");

    实例对象成员方法:(对象引用,方法字符串),(参数1,参数2)

    ---------------------------------

    使用自定义函数库。

    通常将多个自定义的函数组织到同一个文件或多个文件中。这些收集函数定义的文件就是php的函数库。

    require()性能与include()类似,都是包括并运行指定文件。

    不同之处在与,require()执行文件时每次都要进行读取和评估,include()则直接用文件内容替代。

    include()通常放在文件最前面,程序执行时,会先读入include()语句所引入的文件,使之变为脚本的一部分。

    require()通常放在流程控制的处理区段。

    require()和include()语句是语言结构,不是函数。如echo()。也可require “other.php”;

  • 相关阅读:
    .TTableRegionMapper' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
    Cannot resolve com.google.zxing:javase:unknown
    为什么需要权限管理?
    spring boot 上传文件出错:org.springframework.web.multipart.MultipartException: Could not parse multipart s
    如何在windows上设置文件的默认打开方式
    如何将vscode设置为中文
    使用hutool工具类进行简单的excel导入和导出的工具类
    上传照片到本地服务器上(亲测有效)
    Centos 防火墙
    VirtualBox 安装增强工具
  • 原文地址:https://www.cnblogs.com/John-/p/6947533.html
Copyright © 2011-2022 走看看