• PHP【函数】


    目录:【PHP函数】、【PHP数组】

    一、PHP常用函数(和JS一样)
    函数的四要素:
    ①返回类型
    ②函数名
    ③参数类型
    ④函数体
    因为PHP是弱类型语言,所以可以不用写返回类型,但是其他三个要素都是必须要写的。



    1、最简单的函数写法

    function show()
    {
    echo "hello";
    }
    show();

    2、有返回值的函数
    就是在函数体里面要加return。
    return:返回。

    function show()
    {
    return "hello";
    }
    echo show();

    3、有参数的函数
    需要一个参数,因为是弱类型语言,不需要给数据类型,直接写形参就可以。

    function show($a)
    {
    echo $a;
    }
    show("你好");

    所以在输出调用的时候需要给一个实参。



    4、可变参数的函数(PHP中)
    也就是说函数在调用的时候,参数是可以变化的。可以不给参数,可以给一个两个三个都是可以的。如果是在其他语言中,这种可变参数是需要使用面向对象的知识,而在PHP中是不需要的。
    可变参数如何定义例:
    一个传的参数做一个累加的函数,传过来几个参数做一个累加求和,之后再输出最终结果。
    func_get_args:在函数体里面,如何获取用户给的参数。
    func:函数的缩写。
    get:获取。
    args:参数。
    如果调用这个方法,会调回一个数组,就是所有用户给的参数。

    function sum()
    {
    $attr = func_get_args();
    var_dump($attr);
    }
    sum()

    ①如果sum没有传参数的话结果是:
    (数组里面没有元素,是的。)

    array:数组
    如果sum里面传值过去的结果是:
    sum(1,2,3,4);

    索引为0,1,2,3. 数值就变成了四个了。所以说这个方法可以动态的获取用户传的参数的个数,然后整体的放到一个数组里面。既然我们可以获取用户的参数,那么接下来我们就可以进行操作了:

    可以使用for循环用来遍历到每一个参数,做一个累加:

    function sum()
    {
    $attr = func_get_args();
    for($i=0;$i<count($attr))
    }
    sum(1,2,3,4)

    PS:如何获取数组长度

    count($attr)
    function sum()
    {
    $attr = func_get_args();
    for($i=0;$i<count($attr))
    }
    sum()

    ②获取参数的数量
    func_num_args();然后交给一个变量。

    function sum()
    {
    $attr = func_get_args();
    $n = func_num_args();
    
    $sum = 0;
    for($i=0;$i<$n;$i++)
    {
    $sum += $attr[$i];
    }
    echo $sum;
    }
    sum();

    这是一个完整版的PHP可变参数函数,没有规定参数具体是多少,用户在调用的时候可以随意给参数。
    +=:自身加上后边的值。


    二、PHP数组
    数组是专业用来存储数据的结构。
    数组的特点:
    ①数组里面可以存储任意类型数据
    ②数组并不是在内存里面开辟一块连续的区域存储。

    1、数组定义方式
    ①PHP数组简单的定义方式:
    $attr = array();
    var_dump($attr);
    变量(未来存的是数组)=数组(参数)
    ②[]方式定义
    $attr = array(1,2);
    $attr1 = [1,2,3,4];
    var_dump($attr1);

    PS:因为我们在使用时是用的DW,而不是PHP专业开发工具,所以这个时候写完代码会显示出错,但输出是不错误的,所以可以无视掉。

    如果想要索取这个数组中赋值的4如何取?
    $attr1 = [1,2,3,4];
    echo $attr1[3];

    ③赋值定义
    $attr = array(1,2);
    $attr2[0] = "你好";
    $attr2[1] = "世界";
    var_dump($attr2);

    $attr2[0] = "你好";:给索引0的位置赋值一个你好。


    2、索引数组
    $attr = array(1,2,3);
    var_dump($attr);
    因为我们在输出或者取值的时候,我们可以看到前面的索引号:0、1、2等。


    3、关联数组
    和其他语言中的集合比较像,前面的索引号位置变成字符串,也就是相当于给后面的值起了一个名字。
    $attr1 = array("one"=>1,"two"=>2);
    var_dump($attr1);

    而关联数组和索引数组区别就在于K的区别。也就是值前面的“名字”不同。
    索引号的是自动排的,而关联数组的是我们认为取得。
    取值:echo $attr1[one];



    4、遍历数组
    ①for循环遍历数组(关联数组无法使用)

    $attr = array(1,2,3);
    $attr1 = array("one"=>1,"two"=>2); 
    for($i=0;$i<count($attr);$i++)
    {
    echo $attr[$i]."<br>";
    }

    点.:代表字符串的拼接。

    ②foreach遍历
    索引和关联是都可以便利的
    (1)

    $attr = array(1,2,3);
    $attr1 = array("one"=>1,"two"=>2,"3"=>3); 
    foreach($attr1 as $v)
    {
    echo $v."<br>"
    }

    ($attr1 as $v):第一次执行的时候是把数组里的第一个元素扔给变量$v,每一次都是这样。

    (2)取值取值和K

    $attr = array(1,2,3);
    $attr1 = array("one"=>1,"two"=>2,"3"=>3); 
    foreach($attr1 as $k=>$v)
    {
    echo "{$k}--{$v}<br>";
    }

    {$k}--{$v}<br>:在字符串里解析变量。解析完之后其他的不变,只有{$k}和{$v}变化。
    --:起到分割效果,也可以加==也可以不加。
    ③、each()和list()配合遍历数组
    each方法可以返回$attr1数组里的某一个元素的K和值。

    $attr = array(1,2,3);
    $attr1 = array("one"=>1,"two"=>2,"3"=>3); 
    var_dump(each($attr1));

    var_dump(each($attr1)); 取数组里面当前指针指向的元素。
    var_dump(each($attr1)[1]);如果取索引1,可以取到value值。
    var_dump(each($attr1)["key"]);如果取到Key,也可以取到索引值。
    也就是说:
    它返回的是当前这个数组$attr1里面的第一个元素,将第一个元素的索引和值全部取出来,之后新建了一个数组,存在这个数组里面,这个数组为了使用方便,所以里面既有索引,也有关联。也就是说,这个数组里面的数据是有容余的,都可以取到值。

    ④list()方法 特殊
    其他的方法都是写在等号的右边。list是唯一一个写在等号右边的。
    (1)将右侧数组里的元素赋值给参数列表里的变量。

    $attr = array(1,2,3);
    $attr1 = array("one"=>1,"two"=>2,"3"=>3); 
    list($a,$b,$c)=$attr;
    echo $a

    把右侧attr里每个元素取出交给左边的参数列表里的每个参数。它是用来给这个变量赋值,而所赋之值是数组里元素的值。
    所以,如果输出$a,就是1。
    (2)如何配合遍历数组。

    while(list($k,$v)= each($attr1));
    {
    echo "{$k}--{$v}<br>";
    }

    不常用。记住即可。


    (1)使用指针的方式来遍历数组。

    $attr = array(1,2,3);
    $attr1 = array("one"=>1,"two"=>2,"3"=>3); 
    echo current($attr1);

    取指针指向的当前元素的value值。只管取值,不动指针。
    (2)key方法
    eco key($attr1);取指针指向的当前元素的key。只管取值,不动指针。
    (3)next()调整指针的。
    (4)将指针向下调一个。

    $attr = array(1,2,3);
    $attr1 = array("one"=>1,"two"=>2,"3"=>3); 
    next($attr1);
    next($attr1);
    echo key($attr);

    (5)将指针向上调一个。

    $attr = array(1,2,3);
    $attr1 = array("one"=>1,"two"=>2,"3"=>3); 
    next($attr1);
    prev($attr1);
    echo key($attr);

    next:下一页。
    prev:上一页。
    (6)end 将指针调向最后一个元素。
    (7)reset: 将指针复位。

  • 相关阅读:
    粤语·简约学习笔记
    Linux的网卡由eth0变成了eth1
    RedHat 更新CentOS Yum源
    Lamp 搭建
    像淘宝、京东这样的大型电商网站服务器构架完全部署方案
    完成静态服务器——Node.js摸石头系列之四
    实现使用Websocket通讯的聊天室——Node.js摸石头系列之六
    Node.js摸石头系列目录
    Aptana studio 3 修改配色方案
    Node.js 的安装和控制台命令——Node.js摸石头系列之一
  • 原文地址:https://www.cnblogs.com/zrifq/p/6184412.html
Copyright © 2020-2023  润新知