三篇文章带你极速入门php(一)之语法 (2)

is_array()方法判断参数变量是否是数组
count()方法返回参数数组的长度
if(){}else{}结构是条件语句语法,括号内的判断语句如果成立,程序运行if下边大括号内的内容,否则运行else下大括号的内容

//情景剧一开始们,演员得自我介绍一下吧,流程不能省 public function introduce() { if (empty($this->actors)) { error('大家好我是导演,男女主角偷偷约会还没结束,今天可能来不了了'); } foreach ($this->actors as $actor) { $intro = "我是{$actor['name']},"; switch ($actor['sex']) { case '女': show($intro . "我是女主角。"); break; case '男': show($intro . "我是男主角。"); break; default: show($intro . "抱歉,我不知道我什么性别。"); break; } } }

empty()函数判断数组是否为空,空返回true,也就是正确的意思,此处没有else,代表如果不满足if的条件,程序直接往下走,不运行大括号内的代码。

foreach循环遍历数组,foreach($arr as $val),就是说对把$arr的所有成员依次赋值给$val,循环的次数就是$arr的长度

switch语句针对同一地方不同值进行选择,可以避免多次if else,性能和可读性也更好

switch后跟随的括号表示选择的变量

case后的值和冒号后的代码,表示对应值和要运行的代码,注意要添加break,表示跳出本次判断,不然代码会继续往下运行

defaul表示没有满足以上规定的case的时候,就运行default的代码

//表演开始啦 public function action() { if (empty($this->actors)) { error('演员临时有事,谢谢大家捧场'); } //这是我们的剧本 $play = array(); $play[] = "{$this->actors[0]['name']} 和 {$this->actors[1]['name']} 在街边相遇"; $play[] = "{$this->actors[0]['name']} 深情脉脉的看着 {$this->actors[1]['name']}"; $play[] = "以下省略一万字,请自行脑补......"; $play[] = "全剧终"; foreach ($play as $key => $val) { show("第{$key}幕"); show($val); } } //不能草草结束,补个片尾曲 public function end() { show('片尾曲,撒花完结'); }

array()函数会返回一个数组,如果没有参数就是一个空数组,也是创建数组的一个方式

$this->actors[0]['name'],返回的是$this->actors的第一个成员的key为name的值

foreach循环的第二种方式,as后边如果是 $key=>$val 这种,就会把数组的键赋值给$key,值赋值给$val,比上一种多了key可以使用
好啦,万事俱备,现在让它运行起来吧

$myphp = new MyPhp(); $myphp->actorJoin($persons); $myphp->introduce(); $myphp->start(); $myphp->action(); $myphp->end();

new MyPhp()会创建一个MyPhp类型的类对象,让一个变量指向这个对象,就可以对这个对象的成员变量和成员方法进行调用和改动了。
看看在浏览器上的输出

改一改在命令行里让它动态跑一下看效果(怎么弄的不重要)

好啦,回顾一下文章开头的你会收获到什么,你都学会了吗?
不要急,下一节会讲搭建php环境,你就可以自己演个情景剧啦

附:全部代码 <?php //定义变量用 $ 符号 //php是弱类型变量语言,不区分变量的类型 //字符串 被""包围的部分就是字符串 $title = "myphp"; //定义方法 用function关键字 //括号里的是参数,直接用变量表示就可以,在调用的时候接收调用时传来的参数 //.是php中字符串拼接的符号 function show($str) { echo $str . "<br>"; } //方法直接调用就好 show("hello " . $title); //exit()方法让整个程序结束 //在""双引号内,可以直接用花括号包裹起来一个变量,这样在被调用的时候变量就会直接在字符串中替换为变量的值,单引号不可以哦 function error($str) { echo "{$str}<br>"; exit(); } //用[]可以直接创建一个空的数组,然后一一赋值 $person1 = []; $person1['name'] = '高富帅'; $person1['sex'] = '男'; //也可以直接创建一个有值的数组 $person2 = ['name' => '白富美', 'sex' => '女']; //这是一个二维数组,也可以用同样的方式创建更多维的数组 $persons = [$person1, $person2]; //定义类用class关键字 class MyPhp { //成员变量直接用$符号声明就可以 //public private protected 是成员变量的访问控制权限 //null是php里的空指针的关键字 public $actors = null; public $music = '我心永恒'; //php中__开头(两个下划线)的函数都是默认自带的函数 //__construct是构造函数,初始化一个类对象的时候会调用这个方法 public function __construct() { $this->start(); } public function start() { //time()方法获取一个当前的时间戳 //date()方法接受两个参数,第一个是一个字符串表示格式化格式,第二个参数是一个时间戳,返回格式化之后的时间 $time = time(); show("时间:{$time}"); $date = date('Y-m-d h:m:s', $time); show("哦~一般人还是看日期好一点 {$date}"); //$this->music 调用成员变量,注意此时成员变量不要加$符号 show("播放片头曲~~{$this->music}"); } //演员加入 public function actorJoin($actorlist) { //is_array()方法判断参数变量是否是数组 //count()方法返回参数数组的长度 //if(){}else{}是条件语句语法,括号内的判断语句如果成立,程序运行if下边大括号内的内容,否则运行else下大括号的内容 if (is_array($actorlist) && count($actorlist) == 2) { $this->actors = $actorlist; } else { error('还有演员没有就位'); } } public function introduce() { //empty()函数判断数组是否为空,空返回true,也就是正确的意思 //此处没有else,代表如果不满足if的条件,程序直接往下走,不运行大括号内的代码。 if (empty($this->actors)) { error('大家好我是导演,男女主角偷偷约会还没结束,今天可能来不了了'); } //foreach循环遍历数组,foreach($arr as $val),就是说对把$arr的所有成员依次赋值给$val,循环的次数就是$arr的长度 foreach ($this->actors as $actor) { $intro = "我是{$actor['name']},"; //switch语句针对同一地方不同值进行选择,可以避免多次if else,性能和可读性也更好 //switch后跟随的括号表示选择的变量,case后的值和冒号后的代码,表示对应值和要运行的代码,注意要添加break,表示跳出本次判断,不然代码会急需往下运行 //defaul表示没有满足以上规定的case的时候,就运行default的代码 switch ($actor['sex']) { case '女': show($intro . "我是女主角。"); break; case '男': show($intro . "我是男主角。"); break; default: show($intro . "抱歉,我不知道我什么性别。"); break; } } } public function action() { if (empty($this->actors)) { error('演员临时有事,谢谢大家捧场'); } //array()函数会返回一个数组,如果没有参数就是一个空数组,也是创建数组的一个方式 //$this->actors[0]['name'] 返回的是$this->actors的第一个成员的name $play = array(); $play[] = "{$this->actors[0]['name']} 和 {$this->actors[1]['name']} 在街边相遇"; $play[] = "{$this->actors[0]['name']} 深情脉脉的看着 {$this->actors[1]['name']}"; $play[] = "以下省略一万字,请自行脑补......"; $play[] = "全剧终"; //foreach循环的第二种方式,as后边如果是 $key=>$val 这种,就会把数组的键赋值给$key,值赋值给$val,比上一种多了key可以使用 foreach ($play as $key => $val) { show("第{$key}幕"); show($val); } } public function end() { show('片尾曲,撒花完结'); } } $myphp = new MyPhp(); $myphp->actorJoin($persons); $myphp->introduce(); $myphp->start(); $myphp->action(); $myphp->end();

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpdzyf.html