摘要: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
老师总结:请认真完成作业, 正视自己的学习成果
学习是一个慢长的过程,需要足够的耐心
认真,支持,是起码的学习态度
直接放张图,算什么, 刷课吗?
如果这样下去,最终受伤的是你自己,不是吗?
补充完整后,再提交