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、函数可以多次调用,没有事。

 <?php
function name() {
echo '这首歌真好听';}
name ();
echo '<br />';
function info($name = '李四',$val = '程序员') {
echo '我的名字是'.$name.'我的职业是'.$val.'<br />';}
info ();
function show($name = '张三',$val = '医生') {
echo '他的名字是'.$name.'他的职业是'.$val.'<br />';}
show ();
function info2($name = '王五',$val = '警察') {
echo '我的名字是'.$name.'职业是'.$val.'<br />';}
info2 ('赵六','教师');
?>

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

超全局变量:

 <?php
function say () {
var_dump($GET);}
var_dump($GET);
say();
?>

静态变量:

 <?php
function sum () {
$num = 1;
$num++;
echo $num;}
sum ();
sum ();
sum ();
sum ();
echo '<br />';
function sum1 () {
static $num = 1;
$num++;
echo $num;}
sum1 ();
sum1 ();
sum1 ();
sum1 ();
?>

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

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

{

  return $num1+$num2;

}

sum(2,3);

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

匿名函数:

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

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

$func = function () {}

$func();

 <?php
function sum1($num1,$num2){
return $num1+$num2;}
var_dump(sum(1,2));
echo '<br />';
function sum2($num1,$num2){
return $num1+$num2;}
var_dump(sum('1','2'));
echo '<br />';
function test(...$arr) {
var_dump($arr);}
test('abc',1,2,3,123,'cc');
echo '<br />'
function test1 ($a,$b,$c,$d) {
var_dump ($a,$b,$c,$d);}
$arr = [1,'wang',1.87,'big'];
test1(...$arr);
echo '<br />';
$func = function () {
echo '匿名函数';};
$func (); ?>

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:移出数组中重复的值。

 

 <?php
$num = rand(1,6);
ehco $num;
echo '<br />';
$num1 = mt_rand(1,6);
echo '$num1';
echo '<br />';
$num2 = 5.4;
ehco floor($num2);
echo '<br />';
$num3 = 6.1;
echo ceil($num3);
echo '<br />';
$str = 'ABCdef';
echo strtolower($str);
echo '<br />';
$str1 = 'ABCdef';
echo strtoupper($str1);
echo '<br />';
$str2 = 'abcdefg';
echo substr($str2,2,4);
echo '<br />';
echo strpos($str2,'c');
?>

14、文件函数:

     

  

 <?php
function add(){
echo '这是数据库添加方法'}
function del() {
echo '这是删除方法';}
function update (){
echo '这是修改方法';}
function select() {
echo '这是查询方法';} ?>
 <?php
include(mysql/wenjianbaohan.php);
add();
?>

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

require和include的区别:

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

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

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

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

    

  

php的基础知识(三)的更多相关文章

  1. java 基础知识三 java变量

    java  基础知识 三 变量 1.作用域 {} 包围起来的代码 称之为代码块,在块中声明的变量只能在块中使用 2.常量 就是固定不变的量,一旦被定义,它的值就不能再被改变. 3.变量 变量必须在程序 ...

  2. Python基础知识(三)

    Python基础知识(三) 一丶整型 #二进制转成十进制的方法 # 128 64 32 16 8 4 2 1 1 1 1 1 1 1 例如数字5 : 101 #十进制转成二进制的方法 递归除取余数,从 ...

  3. C# 基础知识 (三).主子对话框数值传递

    在C# winform编程中,我们经常会遇到不同窗口间需要传递数值的问题.比如数据库的应用,主窗口填写内容num1,点击按钮,在弹出的子窗口显示对应num1值;或者在子窗口填写新注册用户名信息,在主窗 ...

  4. 快速掌握JavaScript面试基础知识(三)

    译者按: 总结了大量JavaScript基本知识点,很有用! 原文: The Definitive JavaScript Handbook for your next developer interv ...

  5. Dapper基础知识三

    在下刚毕业工作,之前实习有用到Dapper?这几天新项目想用上Dapper,在下比较菜鸟,这块只是个人对Dapper的一种总结. Dapper,当项目在开发的时候,在没有必要使用依赖注入的时候,如何做 ...

  6. Java的基础知识三

    一.Java 集合框架 集合框架是一个用来代表和操纵集合的统一架构.所有的集合框架都包含如下内容: 接口:是代表集合的抽象数据类型.接口允许集合独立操纵其代表的细节.在面向对象的语言,接口通常形成一个 ...

  7. Go语言核心36讲(Go语言基础知识三)--学习笔记

    03 | 库源码文件 在我的定义中,库源码文件是不能被直接运行的源码文件,它仅用于存放程序实体,这些程序实体可以被其他代码使用(只要遵从 Go 语言规范的话). 这里的"其他代码" ...

  8. 3. K线基础知识三

    1. 阴线 证券市场上指开盘价高于收盘价的K线,K线图上一般用淡蓝色标注,表示股价下跌,当收盘价低于开盘价,也就是股价走势呈下降趋势时,我们称这种形态的K线为阴线. 中间部分实体为蓝色,此时,上影线的 ...

  9. 税收基础知识 > 三税(营业税, 增值税, 所得税) + 关税

    三税:营业税 ▪ 增值税 ▪ 所得税 主要关注:一般纳税人, 起征点不详细描述. 营业税(Business tax) 营业税(Business tax),是对在中国境内提供应税劳务.转让无形资产或销售 ...

  10. python基础知识三

    在考虑它们的运算时,一定要想到python是一门面向对象语言,它对类型的要求是不那么严格的,因为在完全面向对象的语言中,一切都是对象. 那么让我们重新 考虑+ -  *  /等操作,不再拘泥于传统的数 ...

随机推荐

  1. shell 脚本解压war包+备份+tomcat自动关闭+启动

    公司的开发环境每次替换war包时候,老是需要重新上传并且手动解压,然后再去重启tomcat.觉得这样子太麻烦了,于是写了一个shell脚本,自动解压+备份+tomcat自动关闭+启动.代码如下: #关 ...

  2. Math类中常用方法

    public static int abs(int a) , public static long abs(long a), public static float abs(float a),  pu ...

  3. Linux ->> scp命令复制对端机器上的文件/文件夹

    scp是secure copy的简写,用于在Linux下从远程机器拷贝文件. 特点: 传输是加密的,稍微影响了一下速度.而相比较rsync,它对于资源的占用还是有优势的. 用法 scp [参数] [原 ...

  4. QT写hello world 以及信号槽机制

    QT是一个C++的库,不仅仅有GUI的库.首先写一个hello world吧.敲代码,从hello world 写起. #include<QtGui/QApplication> #incl ...

  5. LVM逻辑卷的管理和使用

    本篇将从头到尾演示一遍逻辑卷的管理. 主要步骤 1.创建lv逻辑卷步骤     前提:先创建3个磁盘分区,类型为8e:         1.PV创建             pvcrete /dev/ ...

  6. 美国加拿大著名公共知识分子简·雅各布斯 (Jane Jacobs)的5本书

    作者是美国.加拿大著名公共知识分子.最近看了她的三本书<城市经济><城市与国家财富><经济的本质>.出版社把这三本书归入“城市-经济”三部曲,三本书英文原版的出版日 ...

  7. asp.net mvc 4.0常见的几个问题

    看书的时候遇到很多不知所云的错误,都是在网上找到的解决方法,没办法,从asp.net到mcv很多的新技术,没有一点思路,只能在网上搜罗了. 1.更新产品不成功 更新产品的时候一直不能更新成功,但是很奇 ...

  8. Android进阶笔记15:选用合适的IPC方式

    1. 相信大家都知道Android进程间通信方式很多,比如AIDL.Messenger等等,接下来我就总结一下这些IPC方式优缺点. 2. IPC方式的优缺点和适用场景 3. 附加:使用Intent实 ...

  9. java的串行化

    参考博客:Java 对象的串行化(Serialization) 1,什么是串行化 对象的寿命通常随着生成该对象的程序的终止而终止.有时候,可能需要将对象的状态保存下来,在需要时再将对象恢复.我们把对象 ...

  10. idea中使用git进行clone、分支切换、pull、push等

    转:https://blog.csdn.net/xiaobai__lee/article/details/81081128 https://blog.csdn.net/geng31/article/d ...