笔记均在课程demo中体现,这样更直观,方便以后回顾以及复习

原创 2018-12-03 14:47:52 235
摘要:demo1(php中函数与变量)<?php//定义变量$brank = '张喜望';echo $brank;echo '<hr>';function cooking1($foods){    return '张喜望一口一口的喂孙洪凯' .$foods;}echo cooking1('屎');ech

demo1(php中函数与变量)

<?php

//定义变量

$brank = '张喜望';

echo $brank;

echo '<hr>';

function cooking1($foods)

{

    return '张喜望一口一口的喂孙洪凯' .$foods;

}

echo cooking1('屎');

echo '<hr>';

function cooking2($foods='粑粑')

{

    return '张喜望一口一口的喂孙洪凯' .$foods;

}

echo cooking2();

echo '<hr>';

$foods = '狗屎';

echo cooking2($foods);


demo2(变量的定义方式)

<?php

//1. 局部变量;函数内部

function demo1()

{

    $str1 = '我是demo1函数中的变量$str1';

    return $str1;

}

//在函数外部访问

//echo $str1;  看来不行

//在函数内部访问

echo demo1();

echo '<hr>';


//2. 全局变量;在函数外部定义

$str2 = '我是demo1函数外部的变量$str2';

function demo2()

{

    return $str2 ? : '不可访问';

}

//echo demo2(); 函数内部访问不行

echo $str2;

echo '<hr>';


//3. 在函数参数列表中定义变量

function demo3($str3)

{

    return $str3;

}

echo demo3('喜望');

echo '<hr>';

//参数列表中的变量,它就是局部变量 $str3,$str4...可省略

function demo4($str3,$str4,$str5)

{

    $str3 = func_get_arg(0);

    $str4 = func_get_arg(1);

    $str5 = func_get_arg(2);

    return $str3. '爱' .$str4.$str5;

}

echo demo4('喜望','孙洪凯','他俩都爱吃屎');


demo3(如何在函数中访问全局变量)

<?php

//创建一个全局变量

$thief = '喜望(小偷)';

function catching($thief)//第三种方法 传参

{

    //global 第一种访问方法

    global $thief;

    //$GLOBALS(超全局变量) 第二种访问方法

    $thief = $GLOBALS['thief'];


    return isset($thief) ? '抓住:'.$thief : '没有抓住';

}

echo catching($thief);

echo '<hr>';

//系统会自动将一个全局变量注册到一个系统预定义变量中

echo $GLOBALS['thief'];


demo4(php中的三种变量类型)

<?php

//变量类型---


//1. 标准类型(单值类型,一个变量名对应一个值)

//字符串

$name = '张喜望';

//整数

$age = 24;

//浮点型

$salary = 4000.55;

//布尔型:true,false

$isMarried = false;


echo gettype($isMarried);//输出变量类型

echo '<hr>';

echo '姓名:',$name,'<br>年龄:',$age,'<br>工资:',$salary,'<br>婚否:',$isMarried ? '怎么可能结婚了?':'单身狗一条';

echo '<hr>';


//2. 复合变量:数组array,对象object

//数组:数组就是将多个变量集合,通过变量在集合中的索引来访问,索引是从0开始

$arts = ['孙洪凯','孙铭娟','康秀梅','张喜望'];

echo '谁是第一能吃的人:' . $arts[0],'<br>';

//echo '谁是最闷骚的人:' . $arts[3],'<br>';

echo '谁是最闷骚的人:' . $arts[count($arts)-1],'<br>';

echo '<hr>';

// count($arts)为数组中元素的总数; count($arts)-1 === 最后一个元素的索引

//对象:对象是内部封装了属性和方法的抽象类型,属性相当于变量,方法相当于函数


//定义一个对象变量

$belle = new stdClass();


//字符串

$belle->name = '张喜望';

//整数

$belle->age = 24;

//浮点型

$belle->salary = 4000.55;

//布尔型:true,false

$belle->isMarried = true;

echo '姓名:',$belle->name,'<br>年龄:',$belle->age,'<br>工资:',$belle->salary,'<br>婚否:',$belle->isMarried ? '怎么可能


结婚了?':'单身狗一条';

echo '<hr>';

//给对象添加方法,其实就是一个函数

$belle->cooking = function ($foods)

{

    return '喜望是个:' . $foods;

};

echo ($belle->cooking)('单身狗');

echo call_user_func($belle->cooking,'单身汪');

echo '<hr>';


//3. 特殊类型:NULL ,resourse 资源类型

//特殊类型:NULL

$file;

echo ($file === null) ? 'NULL' : '不是NULL';

echo '<hr>';

//resourse 资源类型

$file = fopen('demo3.php','r') or die('打开失败');

echo gettype($file);

echo '<br>';

var_dump($file);


demo5(作用域的创建与使用技巧)

<?php   #全局作用域

//什么是作用域?

//1. 函数可以创建一个作用域

//2. 变量的访问是受作用域的影响的

//3. php中只存在函数作用域


//声明一个全局变量,它在全局作用域中

$faction = '天翼';


//声明一个局部作用域:函数作用域

function miss ($belle)

{

    //声明方法 1

//    global $faction;

//    return $faction.'张喜望日夜思念的是:' . $belle;


    //声明方法 2

    return $GLOBALS['faction'] . '张喜望日夜思念的是:' . $belle;

}

echo miss('谁呢?');

echo '<hr>';


//超全局变量:系统预定义的变量

echo '当前脚本的名称:' . $_SERVER['SCRIPT_FILENAME'];

echo '<hr>';

echo $_GET['name'];


demo6(常量的定义以及使用方法)

<?php

//1. 定义常量  常量的本质就是只读变量

//函数定义

define('FACTION','天翼');

//关键字定义

const USER_NAME = '孙洪凯';


//2. 访问

echo FACTION .'的大饭桶:'.USER_NAME ;

//常量的本质就是只读变量

//FACTION = '喜望';   不允许二次定义

//unset(FACTION);   不允许销毁

echo '<hr>';


//3. 常量的作用域

function demo() //创建一个函数作用域(局部作用域)

{

    return FACTION . '的大饭桶' . USER_NAME;

}

echo demo();    //访问函数中的常量

echo '<hr>';


//4. define() 和 const 的区别

$price = 666;


define('BOOOK',$price);


const BOOK = '66666666666';//const 它的常量值只允许标准变量:标量:整数、浮点、字符串、布尔,必须是字面量

echo BOOK;

echo '<hr>';


//const 可以声明类常量

class Test1

{

    const NAME = '1111111';

}

echo Test1::NAME;


demo7(函数的三种命名规则)

<?php

//函数的种类


//1. 普通函数

function add($m,$n)

{

    return "$m+$n=" . ($m+$n);

}

//按名调用

echo add(12,12);

echo '<hr>';


//2. 匿名函数(并非没有名,而是指名称可以任意调用,非常适合用变量引用)

function mult($m,$n)

{

    return "$m*$n=" . ($m*$n);

}

//按名调用

echo mult(10,12);

echo '<hr>';


//用变量调用函数

$mult = function ($m,$n)

{

    return "$m*$n=" . ($m*$n);

};

//按名调用

echo mult(10,12);

echo '<hr>';

//以上两种方法均可(匿名函数其实就是个值)


//3. 自调用函数(自执行函数),其实就是匿名函数的变种,也不需要函数名称

echo (function ($m,$n)

{

    return "$m-$n=" . ($m-$n);

})(10,12);


demo8(函数的三种参数)

<?php

//1. 必选参数

function demo1($m,$n)

{

    return ($m+$n);

}

echo demo1(11,12);

echo '<hr>';


//2. 可选参数

function demo2($a,$b = 20)//先写必选参数,在写可选参数

{

    return ($a+$b);

}

echo demo2(11,6);//最终的值以这里为主

echo '<hr>';


//3. 无参数

function demo3()

{

    $m = func_get_arg(0);

    $n = func_get_arg(1);

    return ($m+$n);

}

echo demo3(11,102);


demo9(回调函数的定义与使用)

<?php

//普通函数

function bigger($m,$n)

{

    return $m . "和" . $n . "中较大的是:" . (($m>$n) ? $m : $n);

}


//main()

function main($bigger)

{

    //这就叫回调,函数注入

    return $bigger(10,20);

}

echo main('bigger');

echo '<hr>';


//用匿名函数完成函数注入

$bigger = function ($m,$n)

{

    return $m . "和" . $n . "中较大的是:" . (($m>$n) ? $m : $n);

};

function main1($bigger)

{

    //这就叫回调,函数注入

    return $bigger(122,20);

}

echo main1('bigger');

echo '<hr>';


/**

 *  php中内置了两个双胞胎函数,用来执行回调

 */


echo call_user_func('bigger',22,33);//普通函数回调(bigger字符串)

echo '<hr>';

echo call_user_func($bigger,88,33);//匿名函数回调($bigger变量)

echo '<hr>';

echo call_user_func_array($bigger,[110,120]);

echo '<hr>';

echo call_user_func_array('bigger',[130,140]);//推荐用 array


demo10(匿名函数与闭包函数)

<?php

$demo1 = function ($name)

{

    return $name . '张喜望';

};

echo $demo1('闷骚男叫');

echo '<hr>';


//匿名函数也有自己的作用域,除了传参,还有什么方式引用外部变量

$xiwang = '张喜望';


$demo2 = function ($name) use ($xiwang)

{

    return '孙洪凯最爱的人是:' . $xiwang . $name;

};

echo $demo2('吧');


echo '<hr>';


//匿名函数其实就是一个普通变量    1.局部变量 2.函数的参数 3.函数返回值


//1. 匿名函数当局部变量来使用

$func1 = function ()

{

    $name = '喜望哥哥';

    $str = function () use ($name)//在函数中声明一个匿名函数

    {

      return $name . '这里有坨屎快来我们一起吃吧';

    };

    return $str();

};

echo $func1();

echo '<hr>';


//2. 将匿名函数当做函数的参数来使用

$name = '喜望哥哥';

$str = function () use ($name)//在函数中声明一个匿名函数

{

    return $name . '这里有坨屎快来我们一起吃吧666';

};

$func2 = function ( callable $str)

{

    return $str();

};

echo $func2($str);

echo '<hr>';


//3. 将匿名函数当做函数的返回值来使用

$func3 = function ()

{

    $name = '喜望哥哥';

    $str = function () use ($name)//在函数中声明一个匿名函数

    {

        return $name . '这里有一车屎快来我们一起吃吧66666';

    };

//    return $str();

    return $str;

};

//$func3()返回值是一个匿名函数的定义:$str

echo $func3()();


demo11(php中的三种分支结构)

<?php

//php中的三种分支结构


//1. 单分支

//$grade = '69';

//if ($grade>=60)

//{

//    echo '恭喜你及格了';

//}


//2. 双分支

$grade = '99';

//if ($grade>=60)

//{

//    echo '恭喜你及格了';

//}else{

//    echo '你也不行啊老铁!';

//}

//双分支简写

//echo ($grade>=60) ? '恭喜你及格了' : '你也不行啊老铁!';


//3. 多分支

//if ($grade < 60)

//{

//    echo '你也不行啊老铁!';

//}elseif ($grade >= 60 && $grade < 80)

//{

//    echo '恭喜你快到80了';

//}elseif ($grade >= 80 && $grade<90)

//{

//    echo '恭喜你快到90了';

//}else{

//    echo '没毛病奥老铁';

//}


//switch()

switch ($grade)

{

    case ($grade < 60) :

        echo '你也不行啊老铁!';

        break;


    case ($grade >= 60 && $grade < 80) :

        echo '恭喜你快到80了';

        break;


    case ($grade >= 80 && $grade<90) :

        echo '恭喜你快到90了';

        break;


    default:

        echo '没毛病奥老铁';

        break;

}

echo '<hr>';

//switch()常用场景:根据变量的值快速匹配

$zhiri = 'kai';

switch ($zhiri)

{

    case 'kang':

    echo '康秀媚值日';

    break;


    case 'xiwang':

        echo '张喜望值日';

        break;


    case 'kai':

        echo '孙洪凯值日';

        break;

}


demo12(php的三种循环结构)

<?php

//1. for() 循环

$data = [1,2,3,4,5,6,7,8,9,10];


$res = 0;

for ($i=0; $i<10; $i++)     //for (1.循环变量的初始化值;2.循环条件;3.更新循环变量)

{

    $res = $res + $data[$i];

}

echo $res,'<hr>';


//简化一下

$min = 1;

$max = 10;

$data = range($min,$max);

$count = count($data);

$res = 0;

for ($i=0; $i<$count; $i++)     //for (1.循环变量的初始化值;2.循环条件;3.更新循环变量)

{

    $res = $res + $data[$i];

}

echo $res,'<hr>';


//这样有利于函数封装

function accu($min,$max)

{

    $data = range($min,$max);

    $count = count($data);

    $res = 0;

    for ($i=0; $i<$count; $i++)     //for (1.循环变量的初始化值;2.循环条件;3.更新循环变量)

    {

        $res = $res + $data[$i];

    }

    return $res;

}

echo accu(1,3),'<hr>';


//2. while ()循环;入口判断循环

$min = 1;

$max = 10;

$data = range($min,$max);

$count = count($data);

$res = 0;

$i=0;

while ($i<$count)     //for (1.循环变量的初始化值;2.循环条件;3.更新循环变量)

{

    $res = $res + $data[$i];

    $i++;

}

echo $res,'<hr>';


//3. do while ()出口判断,无条件是否成立都会执行一遍

$min = 1;

$max = 14;

$data = range($min,$max);

$count = count($data);

$res = 0;

$i=0;

do{

    $res = $res + $data[$i];

    $i++;

    }while($i<$count);

echo $res,'<hr>';


//4. foreach() 遍历循环

$min = 1;

$max = 15;

$data = range($min,$max);

//forreach($arr as $key => $value)  语法1

//foreach($arr as $value)           语法2

//foreach ($data as $key => $value)

//{

//    echo $key . '=>' . $value . '<br>';

//}


foreach ($data as $key => $value)

{

    echo $value . '<br>';

}


批改老师:韦小宝批改时间:2018-12-09 10:43:22
老师总结:请认真完成作业, 正视自己的学习成果 学习是一个慢长的过程,需要足够的耐心 认真,支持,是起码的学习态度 直接放张图,算什么, 刷课吗? 如果这样下去,最终受伤的是你自己,不是吗? 补充完整后,再提交

发布手记

热门词条