php的基础知识(三)

12、函数:

函数的功能:

  定义:在真实的项目开发过程中,有些代码会重复利用,我们可以把它提出来,做成公共的代码,供团队来使用,这个我们封装的代码段,就是函数(功能)。

  优点:

  1、提高代码的利用率。

  2、减少开发时间。

  3、减少代码冗余。

  4、可维护性提高。

  5、方便调试代码。

  函数的定义格式:

    function 函数名(参数1 = 值1,参数2 = 值2,参数3 = 值3,。。。。。。。。。)

    {

        函数体代码

        return 返回值

    }

类别:

  类库函数:

    is_null () ,is_array (),is_string ();

   自定义函数:

    (就是我们自己写的函数,根据项目开发过程当中,咱们根据需求自己编写出来的函数,可以供大家一起使用。)

 

  【function】:

    定义函数的关键字。

函数命名规范:

  与咱们的变量名几乎一样

  1、函数名不区分大小写。

  2、函数名字使用英文,遵循规范。

  3、数字可以夹在中间或者后面。

  4、下划线不属于特殊符号。

  5、不用特殊符号。

  6、命名的时候要有意义。

  7、遵循驼峰或者下划线。

  8、不能使用系统给咱们的函数名还有系统的关键字。

基本格式:

  1、函数都要以关键字function 开始。

  2、函数名后面要紧跟小括号

  3、小括号下面跟着大括号,大括号后面是函数体。

  4、函数调用需要函数名加上小括号;

没有参数,没有返回值。

有参数,没有返回值。

function show($name = '张三' ,$val = '程序员') //$name = '',$val = '';

{

  echo '我的名字是'.$name.'我的职业是'.$val.'<br />';

}

参数就是:name,val

  如果你写多个的话,用逗号隔开,可以写多个,没有上限。

  就相当于 张三 赋值给name。

有参数有返回值

重点:

  return:

    只是返回并没有输出。

    return后面代码不执行

return:

  1、return关键字只要碰到立马结束,后面代码统统不执行。

  2、如果你想有多个返回值的时候,用数组去弄。

  3、函数调用表达式的值就是函数的返回值。

默认参数:

  1、默认参数就是不传参的时候用的那个变量。

  2、如果你传了参数,就用传过来的值。

  3、如果形参带有默认参数,一般放到后面。

  4、如果没有默认参数,你必须给参数传值,不然会报错。(js不是)

注意事项:

  1、函数必须要function开始定义。

  2、function后面加空,加函数名,加空格,加小括号。  

    3、函数名和变量名字命名规则基本一样,唯一不一样的是,不区分大小写。

  4、函数名后面跟括号,括号里面跟参数(就是变量)。

  5、如果有默认参数,用等号,等号后面是你要跟的值。

  6、调用函数的时候里面传入的值(实参),就是把函数体外的变量的值拿到函数体内来使用。

  7、函数体外的变量和函数体内的变量通常不是一个变量。

  8、函数可以有返回值,也可以没有返回值,你如果想返回的话,你用return 关键字返回。

  9、函数的调用跟你定义的顺序没有半毛钱关系,但是变量不是。

  10、函数可以多次调用,没有事。

 1 <?php
 2    function name() {
 3    echo '这首歌真好听';}
 4    name ();
 5    echo '<br />';
 6    function info($name = '李四',$val = '程序员') {
 7    echo '我的名字是'.$name.'我的职业是'.$val.'<br />';}
 8    info ();
 9    function show($name = '张三',$val = '医生') {
10    echo '他的名字是'.$name.'他的职业是'.$val.'<br />';}
11    show ();
12    function info2($name = '王五',$val = '警察') {
13    echo '我的名字是'.$name.'职业是'.$val.'<br />';}
14    info2 ('赵六','教师');
15 ?>

 

 

1 <?php
2    function say ($name = '张三',$age = 11,$sex = '男') {
3    echo '性名:'.$name.'<br />';
4    echo '年龄:'.$age.'<br />';
5    echo '性别:'.$sex.'<br />';
6    return '这是我的简介。';
7    echo 111;}
8    echo say ('李四');     
9 ?>   

超全局变量:

1 <?php
2    function say () {
3    var_dump($GET);}
4    var_dump($GET);
5    say();
6 ?>

静态变量:

 1 <?php
 2 function sum () {
 3    $num = 1;
 4    $num++;
 5    echo $num;}
 6 sum ();
 7 sum ();
 8 sum ();
 9 sum ();
10 echo '<br />';
11 function sum1 () {
12    static $num = 1;
13    $num++;
14    echo $num;}
15 sum1 ();
16 sum1 ();
17 sum1 ();
18 sum1 ();
19 ?>

形参和返回值的类型的约束:

function sum (int $num1, int $num2) //形参的;

{

  return $num1+$num2;

}

 sum(2,3);

//小括号后面加上:加上数值类型,把函数体返回的值给转成你限定的类型。

匿名函数:

所谓的匿名函数就是没有名字。

//如果你想用,赋值给一个变量,然后该怎么调用就怎么调用,变量加上(),跟普通函数调用一样。

$func = function () {}

$func(); 

 

 1 <?php
 2 function sum1($num1,$num2){
 3 return $num1+$num2;}
 4 var_dump(sum(1,2));
 5 echo '<br />';
 6 function sum2($num1,$num2){
 7 return $num1+$num2;}
 8 var_dump(sum('1','2'));
 9 echo '<br />';
10 function test(...$arr) {
11 var_dump($arr);}
12 test('abc',1,2,3,123,'cc');
13 echo '<br />'
14 function test1 ($a,$b,$c,$d) {
15 var_dump ($a,$b,$c,$d);}
16 $arr = [1,'wang',1.87,'big'];
17 test1(...$arr);
18 echo '<br />';
19 $func = function () {
20 echo '匿名函数';};
21 $func ();
22 
23 ?>

 

 13、常用函数:

数学函数:

  1、随机:rand,mt_rand

  2、小数:floor:向上取整;

        ceil:向下取整;

        round:四舍五入法取整;

  3、其他:abs:绝对值;

        pi:圆周率;

        M_PI:常量,与pi()函数的返回值相同;

        pow:指数表达式;

        max:最大值;

        min:最小值;

字符串函数:

  1、大小写转换:

    strtolower:转换为小写;

    strtoupper:转换为大写;

    lcfirst:首字母小写;

    ucfirst:首字母大写;

    ucwords:每个单词首字母大写;

  2、空白处理:

    trim:去掉首尾的空白字符;

    ltrim:去掉开头的空白字符;

    rtrim/chop:去掉结尾的空白字符;

  3、查找定位:

    strstr/strchr:返回首次出现到结尾的内容;

    strrchr:返回最后一次出现到结尾的内容;

    stristr:strstr忽略大小写的版本;

    strpos:返回首次出现的位置;

    stripos:strpos忽略大小写版本;

    strrpos:返回最后一次出现的位置;

    strripos:strrpos忽略大小写版本;

    substr:子串提取,可以通过下标方式获取单个字符($str{n});

    strpbrk:返回(字符列表中任意字符)首次出现到结尾的内容;

  4、比较:

    strcmp:二进制比较字符串;

    strcasecmp:strcmp忽略大小写;

    strnatcmp:自然顺序比较;

    strnatcasecmp:strnatcmp的忽略大小写版本;

  5、顺序:

    str_shuffile:打乱顺序;

    strrev:逆序字符串;

  6、转换:

    chr:将ASCⅡ码值转换为字符;

    ord:返回字符串的ASCⅡ码值;

数组常用函数:

  1、数组中元素指针的移动:

    next:向后移动,指向下一个元素;

    prev:向前移动,指向前一个元素;

    end:指向最后一个元素;

    reset:复位,重新指向第一个元素;

  2、键和值相关的操作:

    key:获取数组当前元素的键;

    current/pos:获取数组当前元素的值;

    array_keys:获取所有的键;

      array_values:获取所有的值,并为其建立数字索引;

    array_key_exists/key_exists:判断给定的键是否在数组中;

    in_array:判断给定的值是否在数组中;

    array_search:根据值返回给定的键名;

    array_count_values:统计数组中所有的值出现的次数;

  3、添加删除元素:

    array_shift:将数组开头的元素移出数组;

    array_unshift:向数组开头添加一个或更多个元素;

    array_push:向数组末尾压入一个或多个元素;

    array_pop:弹出数组末尾的一个元素;

  4、排序相关:

    shuffile:将数组打乱(转换为索引数组);

    sort:对数组进行排序(排序之后重新索引);

    resort:对数组进行逆向排序;

    asort:对数组进行排序并保持索引关系;

    natsort:用自然顺序算法对数组进行排序;

    natcasesort:natsort忽略大小写的版本;

    ksort:对数组按照键名进行排序;

    krsort:对数组按照键名逆向排序;

    usort:使用用户自定义的比较函数对数组的值进行排序;

    uasort:使用用户自定义的的比较函数对数组的值进行排序并保持索引关系;

    uksort:使用用户自定义的比较函数对数组的键名进行排序;

  5、元素运算:

    array_sum:计算数组中的所有值的和;

    array_product:计算数组中所有值的乘积;

    count/sizeof:计算数组中元素的个数;

  6、创建数组:

    range:建立一个包含指定范围单元的数组(可以指定步幅,可以指定递减);

    compact:创建一个包含变量与其值的数组;

    extract:从数组中将变量导入到当前的符号表(与compact功能相反);

    array:新建一个数组;

    array_merge:合并一个或多个数组(关联会覆盖,索引会重新索引,若想保留索引可以使用'+')

    array_merge_recursive:递归合并一个或多个数组;

    array_combine:用一个数组的值作为键名,另一个数组的值作为值创建数组;

  7、其他:

    array_chunk:将数组分割成指定长度的小数组;

    array_map:将回调函数作用到每个元素上,返回处理的结果数组(新数组);

    array_walk:将回调函数作用到每个元素上(会改变原数组),返回真假;

    array_filter:使用回调函数过滤数组(回调函数返回真的才会出现在结果中);

    array_flip:返回交换键和值后的新数组;

    array_rand:随机从数组中抽取一个或多个元素的键;

    array_replace:使用后面的数组中元素替换第一个数组中的元素;

    array_reverce:返回一个单元顺序相反的数组(关联数组会保持键值对应,索引数组需要传递第二个参数);

    array_unique:移出数组中重复的值。

 

 1 <?php
 2 $num = rand(1,6);
 3 ehco $num;
 4 echo '<br  />';
 5 $num1 = mt_rand(1,6);
 6 echo '$num1';
 7 echo '<br />';
 8 $num2 = 5.4;
 9 ehco floor($num2);
10 echo '<br />';
11 $num3 = 6.1;
12 echo ceil($num3);
13 echo '<br />';
14 $str = 'ABCdef';
15 echo strtolower($str);
16 echo '<br />';
17 $str1 = 'ABCdef';
18 echo strtoupper($str1);
19 echo '<br />';
20 $str2 = 'abcdefg';
21 echo substr($str2,2,4);
22 echo '<br />';
23 echo strpos($str2,'c');
24 ?>

14、文件函数:

     

  

 1 <?php
 2 function add(){
 3 echo '这是数据库添加方法'}
 4 function del() {
 5 echo '这是删除方法';}
 6 function update (){
 7 echo '这是修改方法';}
 8 function select() {
 9 echo '这是查询方法';}
10 
11 ?>

 

1 <?php
2 include(mysql/wenjianbaohan.php);
3 add();
4 ?>

<?php
require('mysql/wenjianbaohan.php')
select ();
?>

require和include的区别:

require('......')这个函数一般放在php文件最前面,程序在执行前就会先导入要引用的文件;

include('......')这个函数一般放在程序的流程控制里面。只有程序在执行碰到才会引用。可以简化程序的执行流程。

require:一个文件存在错误时,执行就会中断,并返回一个致命错误。

include:一个文件存在错误时,程序不会中断执行,会弹出一个警告。

 

 

 

    

 

 

  

posted @ 2018-07-09 22:32  infinite001  阅读(396)  评论(0编辑  收藏  举报