粉丝4060获赞1.8万

各位同学大家好,那这节课呢,我们来看一下我们这个 p h p 七的一些改变。首先第一个就是我们 p r p 七标量类型声明,标量类型声明,那在我们 p r p 七里边引入了一个新的功能,就是我们这个标量类型声明已经被引入。什么叫做标量类型声明呢? 就比如说我们有这么一个函数,有这么一个函数,那之前我们 php 以前的这个版本的话, 那你就是直接传入这么一个变量,对吧?直接传入一个变量就进去就 ok, 那在我们 ppt 七里边呢,就引入了这个标量类型声明,所谓的标量类型声明呢,如果你学过其他的语言, 比如说你学过 cac、 加加扎瓦啊这些强类型语言的话,那你就会,你就会很好的会理解这个东西。就是我们在传入一个参数的时候,我们在前面一定要指定啊,我们这个传入的这个参数他是什么类型的? 比如说那这块呢?以这个函数为例,比如说我们要传入这个整形类型的,对吧?那前面的话,那我就给他传入这个 int, 对吧?就表明我这个是整形类型的,你传出的参数就是整形类型的, 但是呢我们这个比尔比七呢,又比较灵活,他引入了两种方式,第一种方式呢就是我们的默认模式,对吧?这就是一般的方式。第二个就是我们的严格模式,首先我们来说 这个一般模式也是我们默认的这个模式,我们看他是这么写的,就是前面是硬特,对吧?表明我后面传入的参数是啊,硬特类型的,但是如果你传入一个字串,或者是一个 flot 这么一个类型的数据类型的话, 那他其实也是可以运行的,所以我就觉得这个在这一点来说呢,平时皮又比较的灵活,又比较的灵活。好,那我们来做一个实验, ok, 那这段代码也是非常的简单,所以呢,我就直接拿个拷笔过来,然后呢大家都知道这三个点代表什么,对吧?之前我跟大家讲过,就是代表传入多个参数的时候啊,我就可以使用这 多个点,多个点,不用去指定哪个参数是哪个,还是参数名是哪个参数,对吧?好,那我们来做一个。首先我们来肯定的来说一下这个 ppp 五点六这个版本,他是没有这个特性的, 看到了没有报错,对吧?报错,好,那我们来看 p 二 b 七, 看到了没有?七, p 二比七,那运行结果没有报错,而且最终的运行结果是九,对吧?是九,好,那我们再继续往下看,就二, 二加三,二加三,他只把我这个当成了一个一,对吧?二加三等于五,嗯,这,这是,这是一个三,对吧?二加三等于五,五加四等于一个九,他把这个四点一给他 转换成了一个四,然后变成一个九, ok, 那这种方式呢,我觉得就是有点,怎么说呢?有点不, 不累了,哎,如果你真的想使用这个,使用这个就是我传入的这个参数,必须都必须是硬的型的,你必须做一个严格的检测,那我建议大家还是使用这个严格模式,严格模式呢,就前面加一句话 declare 就可以了, 来看一下 declare straight taps 等于一,就是使用这个严格模式,然后呢这个时候呢,我们再来看 他,这个时候呢就爆出了这么多的错误,大家看到了没有?首先我们来看第一个, 这个第二个参数,传给这个函数的时候, must be the table, must be over the table in teacher, 对吧?就是说你第二个参数呢?必须是一个 int 类型,但是呢你给了我一个 string 类型, 对吧?好,包括我们的第三个参数,你是啊,我想要樱桃类型,但是你给了我一个 flow, 对不对?那这样的话就会爆错。所以呢,我是觉得如果你真的想使用这个这种这种方式来去,呃,传入一个参数,来去来使用这个标量类型。声明的话,我是建议大家使用这种方式啊,严格模式 就是你必须给我传入一个印特类型或者 stree 类型,如果不是这样类型的话,那我就直接报错。好啊,这个是我们的第一个特效, 大家了解一下。第二个呢就是我们这个合并空运算服,这个是什么东西呢?先大家来看一个, 比如说,呃,其实这个东西就是从这边来演变出来的,比如说我们现在有个到了内蒙,对吧?你比如说一个张三,然后呢? 然后呢?我想把这个到了内部呢?给他付给其他的内内卡内部。 那我这个复制怎么去操作呢?就是来判断我这个刀乱内吗?是不是为空,对吧?就是我们这三元运算符吗?是不是为空?那如果为空的话,呃,如果不为空的话, 我就是这个到了内蒙就是这个词,那如果为空的话,那我们就有一个 dfort, 对吧? def 也有,然后 t 啊,就假设是这样子的,这是我们在 p 二 b 七版本以前对算元运算符的一个写法,我们是这样子的,对不对?那 到了我们的这个七百万以后呢?我们实际上是把这个合并出来了,合,合并过来了就是合并运算符,空合并运算符。如果我们到了内幕有其职就取之者,如果,否则就变成了我们这个 no 内幕,就取他这个后面的这个默认值, 看到了没有?这个和这个是等价的, 这个和这个是等价的,你就判断如果这个有这个值,那就取这个。到了内蒙,如果没有的话,就取 这个 nony, 就取这个 nony 吧,好吧, ok, 那我们来看一下啊,来打印一下这个,在这打印一下啊, 啊口一个 dollar neck 内蒙, ok, 那我们来运行这个七这个版本, 看到了没有?这个七点零这个版本呢,他是既支持我们的这种原始的三元运算符操作,又支持我们这种新式的三元运算符操作,这个也就是我们上节课说的我们七呢,在升级这个七的时候呢,如果你不想改这个的话,那这种方 也是向下可以是兼容的,也不会给你报错,对吧?但是呢,如果你想改成这样子的话,更好更好一些。 ok, 那这个就是我们合并空的一个运算服。第三个呢,就是我们这个飞船操作服,它用于呢比较两个表达式,什么意思呢?就是我们当第一个表达式呢,大于小于或等于我们这个, 呃,这第二个表达是的时候呢,他分布要返回一负一零,对吧?一负一零啊,我们直接来看一个例子,那看一完了一个例子以后呢,就对这个有一个更直观的一个感受,理解的也更加深入了。 ok, 好,我们再来看。好,那我们来看一下 零负一一 对吧?零负一一,他分别反为零负一一往来看零负一一对吧?当我们啊,第一个表达是等于第二个表达是的时候,他返回零, 对吧?当我们第一个表达是小于我们第二个表达式的时候,他反而复一同理,当我们第一个表达是大于我们第二个表达式的时候,他返回一个一,对不对?返回一个一, 好,那我们银行删了,这是我们的英特类型啊,那这样的话你你比较好判断,如果是我们 flot 类型的话,再来看一下 也是同样的道理, 零负一一对吧?零负一一 就是当我们第一个相等的零,小鱼的话负一,大鱼的话,呃,一对吧,大鱼的话一,好啊,这个都没有问题。那我们来看这个第二个 string, 这个怎么去判断?他怎么去判断? 再来看一下结果也是零负一一,那他这个是怎么去判断?第一个当不用说了,肯定是相等的,对吧? 那第二个 a 和 b 他怎么去判断?实际上呢?是把我们这个 a 字符号 a 和字符号 b 呢?他是转换成我们这个阿斯卡马来进行一个判断,来进行一个判断 啊,实际上就变成转换成整形了吗?转换成整形啊,然后做一个判断啊,大家可以去试一下。 ok, 那这就是我们的一个飞船操作服啊,这就是一个比较新的一个操作服,而如果大家,呃,有这种这方面的一个需求的话,我们可以使用这个操作服来进行一个操作。 好,那接下来呢,我们再来看我们这个长量数组,那数组长量呢?可以使用低范函数来定义,那在 ph 五点六以,呃,之前呢, 他只能使用我们的抗死的关键字来定义,抗死的关键字来定义,那这块呢,我们也可以使用这个低发来定义了, 知道没有?嗯,在 pop 七版本以前呢,我们只能使用这个康斯坦来定义啊,所以呢,这个也是比较大的一个改变。 ok, 那我们来看一下十三点 p, ok, 那我们来看 print animals 一,那肯定就是倒的,对吧? 好,我们来看一下三点平均啊,看他,对吧?因为他是用零开始来计数吗?零一啊, 好,那我们来看一下,如果我们是用 psp 五点六是版本的,看到了没有?他是不是就爆错了? 是不是就爆错了?因为你这个长量呢,我们只能使用我们这个 cons 的来进行一个定, 而不能使用这个地方,那在我们 pmp 七里边,我们就可以使用这种方式来进行一个定义,好吧,好, ok, 那这个就是我们 pmp 七的一个比较小的一个改变。好,那本节课就跟大家讲到这里,谢谢大家。

好,我们继续来上课,那么这节课呢,我们再来看一下我们数组的便利啊,那什么叫做便利呢?所谓的便利就是一个一个的去看啊,去看每一个值,那么咱们来看啊,在这里面,比如说 我们来这里边新建一个这个,呃,平平的文件啊,叫做零六啊,叫做 ar a y 瑞的便利吧,便利 啊,这里边我们要演示的是数组的电力,数组的电力啊,好了,那比如说这里边我们定一个名,等于 iy, 然后我们来一个,比如说 是原地,是原地,对吧?然后照着成就自己的只需 一套精品。 好,还有什么呀?还有融职教育啊,叫做这个在工作中学习,然后 在学习中工作。好了,那我这块定义了这么一个数组,对吧?那咱们来看啊,为啥?刚第二批我们来打印这个数组,咱们看一下数组的下标, 走你,哎,你看数组的下标是不是零一二三自动连续增长的,对吧?那你想啊,那比如我做一个循环,你看啊,放循环到了 a 等于零,到了 a 小于小姐,小于四,到了 a 再加 降,降完以后咱们看我输出刀来,当我输入刀来的时候,刀来是什么?刀来是不是也是零一二三,那是不是跟那个数组下标是不是一样的, 对吗?那是,既然是这样的话,那我是不是就可以什么样可以输出输出什么刀了?哎啊啊,里边的刀了,哎,对吧?然后每输出一个,我连上一个。 br 换行,那现在咱们来看, 走你,你看学习完毕,成就自己的学校一一套精品融资教育在工作,学习在学生工作,是不是每一个都拿到了,对吧?但是每次我要打一看去数这个数,那是肯定是什么不科学的吧?对不对?哎,包括,比如说这里面如果一旦多增加了一个,比如说增加一个需要求, 好,那现在你看能拿出学校熊来吗?不能吧,为什么?因为我的这个数循环是不是只循环到了三就完事了, 对不对?哎,所以这个时候怎么办呢?这个时候我是不是能有一个帮我统计这个数数长度的东西就更好了,哎,那咱们来看,我们有一个叫什么呢?统计数数 长度 这功能啊?功能叫什么呢?叫做炕啊炕。那咱们来看,比如说我这里面遭了 led 得了 l 一等于什么呢?等于 cvt, cont cont, 谁能看得到俩?好了,不要乌鸦刚掉皮,打一打赢谁呢?打进这个 l 音,你看 l 音给我返回的是什么东西啊? 走,你发什么五代表什么意思啊?你看我叔叔里面是不是有五个元素,对吗?哎,那如果说在这里面,比如我再加一个,再加一个什么?再加一个这个,比如说来个槽盖吧, 来个草盖好了,那这个数咱们再来看, 是不是又加了一个,对吧?那他这里面元素这个数是不是也加了?没问题吧?哎,那也就是说这个 抗的是不是可以?可以干嘛?可以帮我们去统计数组长度,那有了这个数组长度是不是就可以去便利了?那比如说在这里边我们再次便利数组啊, 便利出主啊,怎么便利呢?咱们看放循环啊,到了,哎,等于零,对吧?到了,哎,小于,小于谁啊?是不是小于 l e n 呐?对吧?我们是不是统一的这个长度?那再来到了,哎,加加 好了,然后在这里面我再来输出刀,来 air 里面的刀来,每输出一个,我给他一个横线,这回啊,来,咱们给他一个横线。好,那这个时候我们来看,跟上面呢有个区分吧,我们也来一个横线啊, hr 来,再来刷新,你看学习完毕带横线的,对吧?融资,这个是称之自己的带横线融资,教育工作中学习学校熊炒钙,这不都在红红线呢。 那比如说这里面咱再来一个,再来一什么?再来一个武大郎吧,来,走了,大郎吃药, 走你,你看大郎吃药是不是也便利出来了,看到了吗?哎,这就是咱们使用放循环来便利,那么需要配合什么呢?配合,我们的这个功能叫做 c u n t 这个功能对吧?他是干嘛呢?返回数组的长度对吧?哎,那这里边参数 对了是吧?返回值了。返回什么呀?数组的长度,数组的原数个数,是不是这个意思?哎,这就是咱们的,看看啊。好了,那现在有个问题,比如这里面啊,咱们来看,我再次定一个数组, 如果刀了 arr 等于 aiy。 好,那比如这里边来个内, 我定一个。定义什么呢?定一个徐小九。好,然后呢,这里边我定义这个,呃,年龄,比如说十八岁啊,然后这个性别,比如说唯一男的吧,对吧?然后再来一个什么呢?再来一个爱好,比如说来个 hobby 爱好, 哎,好,打电话,打电话。好了,那这也是一个输入对吗?未加刚 dnp 打印这个输入刀雷啊啊。我们先来看一下,来,走你,你看是不是有这个输入啊,也是一个输入,也是一个输入,接下来呢?你看我看看,看到谁看到这个刀雷啊, 能不能反回他的长度 l 一,然后我们再来为压杠对,按 p 打印 l 一,好了,这回再来看,走你高几个元素?四个元素没错吧,这里面是不是有四个 元素?哎,那好了,那接下来我能用放循环来便利吗?到了 i 等于零对吧?到了 i 小于 l 一 l 一对吧,然后到了 a 再加好了,那这个时候我们来到了 icolol, 这个, 哎,遭了。哎呀,遭了呀,你的谁遭了,挨吧,对吧,那这个时候我们来看可不可以再来刷新来,你看,哎,注意啊,他给我输出了一个什么?输出了一个十八对吗?又输出了一个一对吗?但是剩下呢?他告诉我什么欧布斯艾特二和欧布斯艾特三 是不都没有被定义啊?你看阿迪范的欧布赛怎么样?就是你的下标二和你的下标三,注意,我在循环的时候,因为他拿的是四,所以循环会循环零一二三是不是循环这些, 那么这里边注意,数组下边零有了,下边一有了,而二三有吗?是不是就没有了?所以他这里面给我报欧佛赛的二和欧佛赛的三没有为零一对不对。哎,所以对于这样的数组我用放放循环,这就没办法便利了,哎,所以我需要怎么办呢?我需要使用什么数组专用循环, 循环便利输入,然后那专循环这种叫做否?意思 循环啊,你要变的哪个速度?我要变的,哎。啊,这个速度你要怎么变的?像,像什么?像他的箭去对应着他的值一样,他的箭对应着他的值,你看他是不是这样箭对应着这一个值啊?哎,所以像箭对应的值的时候,那这个时候实际上数组里面是有一个指针的,当前是不是指上面这第一个值,对吧? 就算第一个值,他会把这个内幕复制给谁?复制给 k 啊?把这个需要求复制给谁?给微给了微好了,那数数里面进到这个循环里面,你正常操作, 当操作完以后,你说这个数,这个花括号里边这个循环体执行完以后,循环继续循环吧,那指针往下移动,指向了十八,对吧? 十八下标是不是零啊?他会把零复制给 k, 把一把这个十八复制给了 v 啊,那一样继续走。你的操作走完以后,指针继续往下移动到这个一下边了,那一的这个下标是不是就是一啊?那把一复制给了这个 k, 把这个直这个一复制给了微啊,然后呢? 在这里边你操作完以后,那继续干嘛?继续往下走?往下走的时候,这个时候干嘛?他把这个薅北复制给了谁?复制给了刀的 k, 然后把什么呢?把后面的大代码复制谁复制给的刀?罗威就是这样 一个操作啊。那你看这里边,比如说我来 apple, apple 什么呢?叫做你的下标 标啊,你的下标 指向的直是谁啊?到了位,哎,好,你看是不是这样的?然后每输出一个, 是不是给一个边,对不对?那现在我们来看啊,来走,你来看下边的,你看你的下边内部指向的指示需要求 你的下标零指向的值是十八,你的下标一指向的值是一,对吧?你的下标后背指向的值是不是打代码?你看是不是对上来了,看到了吗?哎,你是说他每次干嘛呀?每次 都会把什么把这个内部复制给 k, 对吧?把直复制给这个到了微,看到了吗?哎,那你想每次都是复制,那我在循环的外边,因为这是电量,是全局的,对不对?那我在循环的外边打印这个 kk 是谁啊? 是不得看最后一次复制是谁了?那你想最后一次复制是谁?是不是?好?每次最后一次复制,所以我打进这个 k 的时候来,你看 是后背,对吧?然后我再再循环的外边,再打一,谁再打一挨口一个。到了内蒙的时候呢?不是内蒙,是到了威的时候啊,那你看这个时候威是谁?威是不是就是打代码,对不对?这是不是最后一次复制, 对吧?因为什么?因为咱说了,刚才说指有指针吗?指针指到这,把这个后背复制给了 k, 把这个打代码复制的给微。那么当在这个循环题里面,循环完以后,他要继续循环,指针往后移动的时候,是不是就没有东西了?就为纳了, 对吧?维纳了,那这个循环也就停止了啊,这个循环就停止了,所以他最后一次复制给这个 k 复制的什么?就是我们的这个号呗,给这个微复制什么?就是我们的大代码啊,这就是我们宿主专用的这个循环啊,专用的这个便利循环 好了,那笔触组边列的专用的这个循环,我们会了以后啊,那另外这里面还有,比如说我在操作的时候啊,我只需要,只需要纸,纸 需要值啊,不需要见,不需要见,我这是不是连见值一起便利了对不对?那我只需要值的话我可以怎么写?我直接包一尺便利到了。哎呀,怎么便利的,像像什么?像他的值,这里边我给个歪的啊,相当值一样啊, 给一个变量就代表什么?代表是值,如果给两个变量,你需要给这种格式就代表剑对应的值才可以。那这个时候你看我直接 vip 打印他的直啊,打印这个位啊,来,你看,在我的第四十三行,我是循环打印的,对吧?那再来刷新,咱们来看在我的第四十三行是不是都是四十三,对吧。循环打印第一个是徐小熊,然后十八,然后一来打两把,是不是把这个数数也给我们便利出来了, 看到了吗?哎,这就是咱们去操作输入元素啊,去便利输入那么一样没有人说。那既然你能单独变量值,我能不能单独便利剑呢?啊,不行啊不行,你说我直接放一次,我要便利剑倒了呀,歪挨着一个他妈倒了 k, 这样行吗?不行,你注意,这就是一个变量,变量名你随便起,明白吗? 你不是说写一个变了就代表了他是贱的啊,所以你要想变了贱你只能这种格式对吧?变了完以后大不了怎么样,大不了我不用值呗,我直接输,直接输出。 问下个 vip 反应怎么样?反应到了 k 呗。那这里边,呃,我连接 听一下啊,就是你的剑为为什么没刀了? k, 那这个时候你看来走你,你看啊,来,你的剑为内蒙,你的剑为零,你的剑为一,你的剑为后背。是不是只拿剑了 对不对?哎,所以大家记住,如果你只用键的话,那这里边你就需要干嘛?你只要需要写这种格式,如果你只用值,你可以直接省略,就写一个值就可以了。而且无论是这个 这种箭字对的,还是这个直的,他都是什么?就是一个普通变量,你愿意起起什么名?起什么名?我只是起这个歪柳是什么?是有关联的,对吧?别人一看啊,这个歪柳是直,对吧?起着这个 k 呢,到了 k 或者到了 k 外,别人一看也知道这是贱, 明白吧?哎,只是我自己起了一个名而已啊,这就是咱们宿主的便利啊。好了,那宿主便利我们就要到这里这节课,我们到这下节课呢,我们对宿主这个便利做一个加强的训练啊。


各位同学大家好,那我们这节课呢,继续来看我们 p r p 七里边的一个新特性。好,那首先我们来看这个 p r p 七的一个匿名类,在我们 p r p 七里边呢,我们增加了这个匿名类的这么一个特性,我们可以使用 new class 来直接的去啊,实力化,一个实力化出来一个对象,好吧,然后呢?匿名类可以使用完,可以使用,可以使用来替代替完整的类定义。 好,那如果大家学过这个 g s, 如果对 g s 有一些深入研究的同学呢?我们可以,我们知道在 g s g s 里边呢,我们可 嗯是可以定义一些匿名函数的,是吧?那个匿名函数和我们这个匿名类其实都差不多。好, ok, 那我们这块写了一个简单的一个实力,简单的一个实力,大家可以看一下,嗯,我们来看一下, ok, 啊,我们这边应该是在十五点一来看,不对, 那你应该是在死的片片。 ok, 那这个是我刚刚跟大家刚刚不是过来的一个匿名 类的一个测试。首先我们来看,呃,这个代码这块是先定义了一个英特菲斯,是吧?一个接口类,接口类,那我们都知道,如果你想去实现这个接口类的话,你必须继承他, 然后呢去再去写这里边的方法啊,重写这里边的方法,那这个是一个 log, 然后这里边有一个方法叫 log, 传入一个 string 类型的一个参数,对吧?就是你要记录哪个哪个什么类型的字串。 好, ok, 那我们继续往下看, class day, 呃, class application 这里边有一个类 application 的一个类啊,这个类里边呢,有两个方法,一个盖的 logger, 一个赛的 logger 啊,就是盖的和赛的方法,对吧?啊?赛的方法呢?就是获取我们的这个 logger, 获取我们的这个 logger 类的一个实力。然后呢我们盖的捞格呢?就是获取我们这个盖的啊捞格类实力啊,这个就是这两个类的一个大概的一个作用。那到我们第十五行的时候呢,我们去扭了这么一个 pk 神,就是你有实力化这么一个啊, pk 神类,然后获得一个刀郎 app, 那我们刀郎 app 呢?调用我们这个 ciatolog 这么一个方法, 这个方法里边呢,我们需要传入一个参数,这个参数是什么参数呢?是我们捞根类,对吧? 他前面这个标量的类的这个声明是捞格类,对吧?那所以呢,我们这个参数参数呢,就必须传入这个捞格类,那一般之前我们采用的方法,如果你遇到这种情况,我们是怎么做? 我们是不是得 log, 对吧? log, 起码你得这样做,然后扭一个 啊,你有一个老哥嘞,对吧?你有一个老哥嘞, 你有这么一个老哥嘞,然后呢,把我们这个 给他传入进去,传入进去,对不对?那在我们平时期里边,我们就不必那么做了,不必那么做了,我们直接扭一个 class, 然后 employment 词我们这个 logo, 对吧? 如果你刚刚还少了一步,少了一步什么呢?必须得先实力,得先去实现我们这个接口, 对不对?那我们在我们评论区这个版本里边,我们只需要一句话, new class our employment 这个 logo, 这样的话一个匿名类就实现了,对吧?然后呢在这个匿名类里边呢,我们可以去就可以去实现我们重写我们这些这个方法,这个 log 方法,我们只需要把这个 mac 纸打印出来就 ok, 然后呢这是比较重要的一步啊,就是在这里边我们 实力化一个匿名类,然后呢接下来呢,我们到了 app, 调用我们这个 get logo, 获得我们这个 logo 类的一个实力,然后呢我们再调用它里边的这个方法, 这样他这里边的方法就可以运行成功。好,那首先我们先用这个 pip 五六这个版本,五点六这个版本, 那他是报错的,对吧?因为 plv 七以前是没有这个特性的,那我们使用 plv 七点零这个版本以后呢,我们发现他是不是成功的打印出了我们刚刚说要打印的这个内容,对吧? my first log message 这个内容就打印出来。 好,那这个就是我们 partv 七里边的一个匿名类啊,增加了这么一个特性,使用 no class 啊,大家可以呃 关注一下,就是可以去呃那个试一下。好,那接下来我们往下看 psp 七里边的这个柚子语句,从我们 pmp 七点零开始呢,单次使用柚子语句呢,可以用来从同一个命名空间导入类函数和长量,而不用多次使用柚子语句。 什么意思呢?直接来看这个,在我们 pmp 七之前,比如说你想导入啊一个类的话,就是使用我们这个运命名空间嘛,这个 u 字导入我们这个命名空间的时候呢,你想导入多个类,你是不是得写 三次啊?但是我们发现这三个类,克拉 c, 克拉斯 b, 还有克拉斯 c 这三个类呢,实际上都是在同一个命名空间下,同一个命名空间下,对吧?你看到了没有,都是在同一个命名空间下,所以呢,在我们 pop 期待 点零开始呢,你如果想导入的这三个类都在同一个命名空间下的话,那你直接使用这个花括号 花光看到没有,就类似于给他搞了一个集合,一次性的给他导入进去,这样的话,我们看我们以前三行代码需要完成的事情,我们只需要一行代码就能够完成,就能够成功给他导入进来, ok 吧,那这个就是我们皮皮柚子语句导入我们这个命运空间里边的类函数和长量的一个做法,导入多个,好吧, ok, 那我们继续往下看,就是这个 p 二 b 七的这个捕捉多种类型的异常和错误,大家看啊,我们这个呃能够捕捉多种类型的异常和错误,这个 新特性呢,是我们在 parb 七点一看到没有,是 parb 七点一新添加了补货多种错误的异常的方法,然后通过这个竖杠来实现,因此呢,我们现有的这个版本 parb 七点零, parb 七点零这个版本呢,它是不支持的, 不支持我们这种写法的,你会会会报错。那所以呢,为了测试我们这个新特性的话,你必须给安装一个 pmp 七点一, pmps 七点一才有这样的新特性, 那由于时间的关系呢,这块呢,我只跟大家提一下,如果你使用的版本比较高, qq 七点一算是很很心狠 很高的一个版本了,那如果你想捕捉多次错误的话,我可以使用这个,呃,这个,这个 是那个斜杠竖杠来进行一个分割啊,来进行一个分割,这样的话我们就能够捕捉多次,多多个错误,对吧?多种类型的错误, ok, 那这个是我们皮皮七点一的一个加的一个语法。好,那接下来我们再来看皮皮皮引入的一个整数除法,引入了这个印特 div 这个新函数, 那他执行操作数的整数除法,并返回结果为硬特类型,注意他必须是他返回的是一个硬特类型的。 好,那以我们来做一个实验。嗯,十六,对, 好, ok, 那我们来看到,呃,我们对这个三做一个整出,就是十除以三, 十除以三,我们正常计算的话,他得的值应该是三点三,三三三三,对吧?无限循环。然后呢?呃,我们使用这个印的 div 以后呢,我们来看一下他的这个结果,看十六, 我们发现他最重要的结果是三,对吧?三,他三点三,三,三三,他只取前面的这个整数位。 同样的,如果你是他并没有什么四舍五入,如果你是十点四的话,十四的话,那按理说,呃,你正常算下来应该是一个,应该是,我想想应该是二点五,对吧? 二点五他并没有四舍五入,而是直接取了一个二,取了一个二。同样,如果你使用这个五点六 这个版本的话,他会爆错,因为没有这个新特性,没有这个新特性,所以加了这个新特性。印子 div 以后呢?如果你以后想有这样的一个需求的话,我们就可以使用这个印子 div 啊,印子 div 啊,就, 呃就能够完成,实际上你也可以,就是你不想使用这个赛尔或者 flow 这个两个函数的话,我们就可以使用这个英特 div 啊,给我们提供了多一种选择。 好, ok, 那这个就是我们整个 php 新特性的一个简单讲解啊,都是我们常见的,而且在我们这个可能以后的工作过程中,以后做项目的过程中会遇到的一些 啊,常见的一些特性啊,跟大家做了一个简单的一个介绍。那接下来呢,我们就来看一下我们 psp 七废弃的一些功能,好吧?好, ok, 那这节课就跟大家先介绍到这,谢谢大家。

ok, 各位同学大家好,那这节课呢,我们继续来学习 pip 的运行模式。我们首先在上节课跟大家讲他的这个 cgi 和 fast cgi 模式,那这节课呢,我跟大家讲一下他的这个 cli 运行模式,还有他的这个模块运行方式。 cry 运行模式。首先我们来说 cry 就是他的全称,叫做 come 的 coman 的啦 interface, 对吧?就是说命令行接口,他这个 c r i 实际上是这个的简称,简称,呃,即就是这个 p r p 命令行接口,对吧?在我们 windows 和 lindax linux 下都支持这个 p i p h p c r i 模式, 那他可以直接在命令行下运行,那就意味着他完全不可,可以需要不需要任何的 hdb 容器,什么意思呢?就是我不需要我们这个 hbb 服务器,比如恩瑞克斯阿帕奇啊,这些,我直接在命令行就能够运行我们这个 pmp 服务, 对吧? psp 服务好,那比如说在我们上节课讲的这些啊,比如说二十九点 psp, 在这样子我们去运行一个 pp 的时候呢,他实际上就是,他实际上就是一种命令行的一个模式,命令行的一个模式,我们传统运行这个 psp 是什么呀?在我们这个浏览器端输入一个命令,输入一个命令,而输入一个网址,比如说 local host, 比如说 local house 的,呃,然后 index 的 tfp, 然后呢?他给你返回一个值,对吧?那个是我们依赖这个发四 cgi 就是依赖这个服务器,对吧?那这这种方式呢?我们就使用的是这个啊,命令行的一个模式,命令行的一个模式来进行一个运行。 好,那我们来看一下这个命令航模式他的一个应用场景,首先他可以开发我们这个定时任务,也就是在我们后续跟大家讲的这个雷娜克斯下,我们使用 crown table 来开发一些, 呃,这个来做一些定时的任务,让他去定时做一些东西。第二个呢就是我们开发桌面应用,叫做 p p 杠 c r i 和 g t k 包,这个我没有去做过。第三个呢就是开发一些 xl 的脚本啊, p r p 也是可以的,因为它本身就是 一个脚本语言,对吧?他也可以干一些我们 shy 脚本里边可以干的一些东西, ok, 那他的优点和缺点啊,这其实也是他的一个应用场景吧, 当我们利用这个 ctrl table 去跑 pfp 的时候呢,可以给服务器减压,可以给服务器减压。当然了这里有个条件就是要求实时性不高,比如说我们 sns 的好友动态,这个实时要求不高,但, 但是数据量比较大,这个时候定时跑的话,会给外部福气,数据库福气分担不小的压力,对吧?但是如果我们,呃,比如说你想跑一个股票, 因为股票是实时的,股票是实时的,那你使用这个狂浪推宝去跑 psp 的话,可能就有点不是那么的现实,对不对?还有就是我们比如说要定时完成某一件事,比如说我们隔一个月就要 备份一下我们的数据库的一个文件,对吧?我们用户,用户留言的时候,这个时候我们写的 pop 脚本,呃,还有这个就是我们要删除一个月前用户留言 啊,这个时候我们写 p h p 脚本,在扣上贴保执行,然后我们一天去跑一次,那这样的话就不用去手动去执行我们 p h p 程序,也是非常的方便,对吧? ok, 那我们再继续往下看,除了这些应用场景以外呢,我们再来看我们 pmp 这个命令本身他的一些参数,我们杠 h, 我们可以看一下我们经常用的这几个参数,第一个呢就是我们杠 a, 这是什么东西呢?可以来试一下。 ok, 那他出现了这个东西 intactive shall 什么意思呢?这就是我们 的一个交互的一个程序,我们可以在这边不借助于一个编辑器,我们可以直接在这个里边写一些东西,其实就是一个交互的一个程序,对吧?交互的一个程序,我们可以在这里这个啊,康达拉里边写一些我们的一个 pvp 程序, 对不对啊?这个是我们杠 a 的一个作用,杠 c 呢就是我们这个 psp 点 ni 就是我们这个配置文件,配置文件就是找一下我们配置文件啊,在哪啊啊?杠 n, 杠 d, 还有我们最常用的就是这个杠 n 啊,杠 m, 杠 m, 我们来看一下杠 m, 杠 m 是什么呢?这个大家也可以啊,用一用杠 m 这个东西呢,就是列出我们 php 的这个它的一些扩展模块,扩展模块你看到了没有?这些都 都是我们安装的一些扩展模块啊,包括我们之前讲呢跟大家讲的这个 sohoson, 对吧?安装的一些模块啊,后续呢我们也还会安装一些模块啊,在这边还有这个 pare 杠 i 是什么东西呢? 平时比杠 i 其实就是我们 p r p 英 for, 他这个其实就是我们 p r p 英 for 的一个返回值,看到了没有?这全部都是我们 p r p 英 for 的一个返回值,好吧,好,我们再继续往下看。杠 h, 还有一个就是我们 pmp 干 f, 对吧? pspf, 其实我们这个干 f 呢,后面跟的就是我们 php 要执行的一个文件, 就现在一个文件,还有就是我们这个 pmp 杠二,杠二是什么东西呢? 就是我们可以直接在执行我们的这个 pvp 代码,来,我们来看一下。 ok, 那我们加了杠 r, 然后后面就加上我们 pmp 的代码,他就会在我们这个命令行里边做一个执行。啊,做一个执行。好,那还有这个 x, 我们来看一下这个 x 什么东西? 来,我们来看一下。呃,假如说我们现在有这么一个程序,我们就把这个啊 r g v, 就是阿哥 给他打印出来,阿克 c 给他打印出来,然后呢我们在命令上去执行这么一个脚板,看他会出现什么样的情况。 ok, 那我们来看一下 vm 弹丝的点皮皮 啊。 prince 杠二,然后呢? 到了 a r j v, 然后我们在 prince 一个 a r j c, 对吧? a r j c, 然后呢我们在命令行去执行这个 test 点儿 p r p, 然后我给他传入几个参数呢?嗯,也比如说 a b c 啊,我们来看。 ok, 那我们首先来说 ar g v 呢,他其实是把我们这些命令行的这个参数给他打印出来,包括第零个就代表我们这个文件,对吧?第一个就代表我们这个参数,二三代表我们三个参数,那他总共有四个,总共有四个,他其实 是把我们这个数字做了一个抗的,对不对?那这个有什么用呢?其实在我们 pmp 也是可以写一个 shall 的脚本,类似于一个 shall 的脚本做一些啊,比如说备份啊等等这些东西。 那这样的话我们可以写这么一个文件,比如说我们这个探测平时是可以改变成一个买色勾当铺的 php, 对吧?这里边就这个文件的作用就是要啊保存我们的就是要 备份我们的数据库文件,对吧?然后后面呢我们就可以跟上他就要接的一些参数,然后呢在我们这个文件里边呢,我们就可以获得到这些参数,然后做一个备份, 对不对啊?这个就是我们啊,康姆达拉就是我们命令行给大家提供的一个一个一个可能性,就是我们啊 cl i 的一个运行模式,他的一个主要的一个讲解。 ok, 那讲完这个以后呢,我们再来看这个模块运行方式,那模块模式呢?是指将我们这个 pmp 啊作为外部服务器的一个模块运行,典型呢就是我跟之前跟大家说的 就是这个阿帕奇,对吧?我们如果编译过这个 lamp 这个环境的话,我们就知道我们这个阿帕奇实际上是把我们这个 pmp 作为一个模块编入进来, 然后呢当我们有一个 p 二 p 请求过来的时候呢,他就会调用我们这个 p 二 p 程序, 不要用我们这个 pvp 程序,然后呢我们这个 pvp 程序,呃,就会去执行我们这个 pvp 啊,调用我们这个 pvp 模块,然后去执行我们这个 pvp 程序,对不对?好,那他的优点和缺点是什么呢?优点其实就是安装方便,对吧?不需要安装代码几期程序。那还有一个就是支持多县城,然后占用的资源也少。还有一个就是支持我们这个大病发, 但是呢,其实这个大并发相比于我们使用 fast cgm 模式运行模式来说呢,其实是不如我们这个 fast cgm 模式的。 好吧?尤其是我们当我们这个啊 fastc 间和我们这个这种运行模式,和我们这个恩,真克斯做一个搭档的时候呢,那他,呃能够支持的请求就远远的超过我们这个阿帕奇 的支持的这个请求,好吧? ok, 那这个就是我们这节课跟大家主要说的两个 模式,第一个就是我们 c r i 运行模式,还有一个就是模块运行模式啊,大家对这四个, 对这四个运行模式有一个简单的了解。好,那本节课就跟大家介绍到这,谢谢大家。

那么今天呢,咱们主要讲下什么呢?讲下咱们 ppp 中的运算服啊,那么在这里呢,我将 pp 中的运算服呢给大家做了几个分类啊,那咱们来看一下咱们今天主要讲的这几项内容。首先第一个是我们的算数运算服啊,第二个呢是咱们的致富串运算服啊, 第三个呢是咱们的副职运算服啊,第四个呢是咱们的比较运算服啊。再往下呢是咱们的逻辑运算以及咱们的未运算服。还有什么呢?咱们的其他运算服啊,这几个呢是我给大家做的运算服的分类,总共分为几类? 七类,对吧?哎,还有最后一点什么呢?是我们批呃,这个 pp 中预算幅的优先级的问题啊。那么今天这八点,我会以八小节的视频录制给大家啊,那么咱们先看什么呢?先看我们的算数预算 啊,那么在看算数预算符之前,我们先来了解一个问题啊,什么问题呢?什么是运算符啊,对吧?什么是运算符? 好了,我先来调一下字体,然后呢,大家先来想一下,到底什么叫做什么呀?什么叫做运算符啊?大家先来想一下到底什么是运算符,怎么定义才是一个什么最好的定义。好吧,来,我先改一下这个字体啊, 改成三号了吧。啊,好了,就用暂时用这个字体了,然后这里边叫做 运算福。那么第一个啊,什么是运算福?什么是运算福?是不是像这样的加呀,减 改呀,对吧,乘除等对吧,用于运算的符号就是运算服 对吧?哎,其实有些东西啊,你不用想的那么纠结,其实你,你说你不知道什么是悬浮吗?你不是不知道,你也知道,对吧?就好比我给你一个手机,不是给你个手机,我问你什么是手机, 其实你也不好过节,什么是手机,你解释不出来,你拿个手机给他看,你说这就是手机,其实大家都明白,对吧?这,那什么是运算福?加减乘除长这个样子的就是运算福,没错吧?哎,那咱们知道运算福了的第二个问题,那什么是运算呢? 什么是运算呢?叫什么?由一个数值,对吧?或者多个数值 经过变换变换得到一个薪值的,薪值的过程是不就是运算? 哎,这是运算啊,那么好,咱们来说一下咱们 ppt 里面运算符的分类,刚才呢,在 ppt 里面咱们也看到了,总共分了几类?七类,对吧?第一个是什么?算数运算符啊?第二个呢,算数算数,是这个数吗?是这个数吧?算。 第二个是咱们制服串运算。 第三个呢,是咱们的复职运算以及比较运算,还有逻辑运算,还有什么?还有咱们的未运算以及其他 运算,哎,一提他就算,那好,咱们一个来看,先看什么呢?先看我们的算数运算啊,算数 运算符,那么算数运算符里面有哪些呢?有,包括了加,哎,这个我给大家零基础的标记一下,这叫什么呀?加法啊,这个其实应该都知道了吧。啊,这个叫什么呀?减法 以及斜线,这个叫什么?叫做厨房, 就是除法,还有一个百分号,这个叫什么?这个叫做求鱼啊,或者或取膜 啊。然后呢?还有什么呀?还有这个佳佳啊,这个叫做 算啊,以及这个啊,不是预算啊,是运算啊,以及这个减减这个叫什么?自减。 好了,那咱们来看一下啊,我们挨个的来看一下,来打开算一下看看到底是怎么算的。来打开这里边 好了啊,打开十一这里边我来新建一个笔记,叫什么呢?叫做零一帅。 好了打开以后来在这里边间括号问号间框号问号 php 啊,我们先来看一个一个来看啊先来看加法运算。那有人说兄哥这个太简单, 看了我会了。那我跟你讲未必啊,你看是谁给你出的题啊,比如到了 m 一等于十 我好像无意中摁错了什么东西 好吧,来比如到了 n 一等于十到了 n 二呢也等于十那这个时候你看好了,我让到了 n o e 加上到了 n o 二把他们的结果复制给了这个蕊绕上那么我想问的当我打印这个蕊绕的时候他的结果是几? 哎,二十这都知道对吧,来帮我问一下 叫什么啊?叫做熊哥点炕下边的幺幺 有个算数对吧,这么反估计我是二十哎。那再来,各位 这个是是你简单对吧你会那好这回你看好了啊 来吧,告答。一等于几 这位等于几啊。 vip 六 m p 打印一下来看看蕊照的结果是几啊我说的是什么。他是印的类型的三啊。不不不不,六六六六六六六啊六六六。 好了这回看是不是啊,来走你是不是现在类型的六啊?哎为什么?因为我昨天讲了我们字不错的转换规则,还记得吗?你看好了我把蕊绕的等于什么呢?因的我转转谁是不是转这个三加四加五 对吧。把它转换成整形以后我打印的他是什么类型?是不是整形的三,没错吧?整形的三吧。哎,因为我说了怎么样啊?我们字不错,转换成数值类型的时候是干嘛呀?取得前前面连续的这个数值对吧?取出来以后转换成这个整形以后,然后后面的 将会干嘛?将会射去,那这加号以后呢?他不认识,没错吧?哎,那我再问,如果说这块我要是一个减杠三呢? 那这个时候我想问,当我打印他的结果为几啊? 作为零了三加负三,是不是三减三 这么为零?这是第九行,你看第九行啊,是不是第九行打印的结果这么为零?哎。所以第一位是可以出现符号的, 对吧?那是第一个位的符号,位指日语出现加或者减若为加的正三,他依然是六,能明白不?哎,这就是咱们什么 啊?咱们涉及到了什么?涉及到了咱们字不算转换的啊。而且各位记住了,第一位是可以出现正号或者负号的,他代表的是第二数,是代表是正值还是负值,对吧?所以这个时候没有影响啊。没有影响,所以你要记住这是一个面试题啊,这是一个面试题。 好了,那加法咱们知道了,那再来减法呢?减法也一样多了,你绕它等于什么呀?等于十减五,结果等于几? 文姐等于五万。哎,你这样都不会算的话啊,那没办法,你找个幼儿园吧,我这能力有限啊。我, 而且我之前我就说了,我说数,我说这个东西你只要会十以内的加减法就够用了啊。你连这十以内加减法你都整不明白,那我无能为力了啊。啊,来,再来一个。什么呀,惩罚 到了蕊绕的啊? esurt 等于,比如十乘以十,对吧?哎,这里边记住我,你别给我写个 s 可没这个称号啊。是这个称号你要给我写那个别说我揍你啊。然后打印结果到了蕊绕了,结果是几?是不是一百?走你,你说是不是一百? 哎,那一样,那再来除法 除法除法。这里面到了蕊绕的,比如说到了蕊绕的等于什么呢?十除以个五好,那我来打印这个结果啊,到了蕊绕结果是几十除以五 二五一十是不得啊。哎那再来变一下那比如说啊这里边我不这么算了。怎么算呢?我说得了忍让的等于零除以个五结果是几 零除以任何数结果是不是都为零啊对吧各位。哎那么咱们再来变一下,比如说我不这么算了,我这么算到那等于什么呀?等于五除以零这些 那你看走,你这回是不是报错了。哎什么呀?什么什么什么拜金如也就是说什么意思?我们被除数不能为零啊?说这个被除数不能为零在第二十六号我们第二个数是不是被除数对吧? 哎这里面告诉什么呀,会报错啊会报错啊,被除数不能为零不能为。 所以这块各位你要给我注意到啊,他会给你报错的啊。好了,那还有什么东西?还有这个咱们的这个球模,对吧?来再来一个,叫做。呃球鱼或者取鱼都行啊 啊获得驱魔 就是取谁啊?取他的余数对不对?比如说 a u m 等于。呃 a m 等于十对吧?然后呢? n o 等于四然后呢?这个时候我说 a u m 取模 n o 结果是几啊? 十除以四,余数是几,余数是不是二?二是得八,对吧?十减八剩二,余数是不是二啊?那你看我打印这条数是不是余数是二? 走,你余数是不是二?哎,那一样道理,如果我给你改成了三呢?只取什么三的话,余数是几?余数是不是一了?哎,余数就是刷新,余数就是一了,哎。三三得九吗?时间就剩一,余数就就一吗?取他那个余数了啊。那再来看 啊,这个也玩,这还有什么?还有我们的字灯或者字简 自增或者自减运算,比如说到了 aum 等于十,对吧?然后呢,到了 aum 加加,这里面我挨口到了 aum, 请问结果是几啊? 我说的结果是几?我说的结果是,嗯, 是不是十一?哎。来,我给他连上一个,哎,别连 啊,我就直接挖大板打印吧,喂,啊,刚第六 mp 打不出来你了呢,是吧?哎,其实我跟你讲啊,一个合格的程序员,他一分钟的打字速度应该达到三百个字母以上才行啊, 而且你也看到了,我的编辑器里面没有任何一行代码提示,对吧?哎,你们在我跟着我一起练的时候,最好也不要有代码提示, 当然你到公司以后,在工作过程中他是要有的啊,因为在工作过程中他追求什么呢?就是你要多快有多快,对吧?老司机带你开车走,带你开车飞,但是在求学阶段千万别快了,开快车容易晕车 啊。所以这个时候你记住了,慢一点啊,把你代码技术都关了,把这些代码多销多练啊,把它挡在你手上就好了, 同样也提高了你的打字速度,对吧?哎,那再来,我这么加,我能这么算啊?减法其实也一样的啊, 到了 a u m 等于十,然后呢?到了 a u m 减减,然后这里边 v i 刚 dmp, 那十减减是几了?九了呗, 这不就是九了?哎,加加是十一,减减就是九,那再来看,那这里面只是看了自增自减,我自增和自减还能这么写,看好了,比如说,哎呦,哎,不 然后呢?我加加多了 a u m, 对吧?哎,这回我来,我没啥,刚 dnp, 我打印这个 a m, 你再来看啊, 是不是也是十一,对吧?哎,也就是说, 在我们做自增或者自减运算的时候,我们的加加,我们的运算符可以在变量前,是不是也可以在变量后,你看减减?哎呦, vr gip 打印这个哆啦 a u m 来,你看是不是啊?走,你是不是也等于九,对吧?那也就是说我们自生自选运算,在运算的时候,是不是运算服可以在变量前,对吧?也可以在变量后啊?哎,那 ok, 咱们先来记一条啊, 自检运算 需要注意的事项啊,有哪些呢?第一,自尊或者自检运算啊,首先是干嘛?是不是就是在原值,就是在原 值的基础上进行加一或者减一的操作,对吧?哎,那么第二呢,在进行进行自增或者自减运算时, 运算服是不是运算服可以在变量前,也可以在变量后,对吧?但是意义。

各位同学大家好,那这节课呢,我们就来讲一下这个 p 二 p 底层原码的一个分析。那讲到这个底层原码呢,我们就不可避免的需要跟大家讲一下我们这个变量的一个存储,因为变量这个东西呢,是我们在程序里边经常用到的一个概念, 所以呢我们就有必要跟大家讲一下,我们这个 pvp 在底层是怎样存储这个变量的。 那首先我们先来看一个简单的一个变量的一个负值,对吧?那这个代码的意思就是把我们这个三这个值付给我们这个达勒,对吧?仅仅就干了这么一件事情,但是它在底层 是怎样去实现的?首先不可否认的是,我们这个底层是不是得开辟一块内存空间,然后呢去存储这个到了幺和三,对吧? 那我们再往下想,这个三难道就是简简单单的就存储到我们这个内存里边了吗?也就是说这个变量值,他在底层存储的一个方式,以及他的一个数据结构是什么样子的,大家可以去想一下。 好,那我们说其实我们 ppp 在底层去存储的时候,实际上是用了一个 z value 的这么一个数据结构来去存储的, 大家注意啊,是 z y 六这么一个数据结构,我们可以看一下 psp 的变量呢,是 是用一个结构体 z value 来保存的,因为我们 php 啊,它的底层是用 c 语言写的,对吧? 那我们 c 语言里边没有这个类的概念,只有这个结构体的概念,我们可以给它类似成我们这个 pvp 里边这个类,可以去这么去理解,但它却不是一个类,对吧?它是一个结构体, 是用这个 z value 来进行保存,对吧?他在底层是用这个 z value 来保存的,那所以呢,我们就可以去看一下这个他在底层是怎样去定义的。 ok, 那为了测试呢,我下了一下我们这个 pmp 杠,五点三点七点二啊,五点三点二七这么一个版本,所以呢,我们就去这个啊,应该是 是这个 ext 看一下,哦,不是这个啊,他有一个正的点 今呃赠了点 h, 呃,我们来进到这个赠的目录啊,这是他的一个底层原版的一个目录。然后呢,我们看到没有,这里边有好多点 h 和点 c 的文件。那如果学过 c 语言的同学,大家可能知道我们这个点 h 这个东西是干嘛的, 他其实就是定义一些头文件的,对吧?这里边全部都是一个定义,都是一些定义,那我们可以直接到这个礼拜六, 因为他这里边定义了特别多的一个内容,所以呢,我们直接就看我们想要的东西,我们来这个二百八十三行,这块 我们看, 你可以去简单的看一下,就是这块二百八十六行 tabdify struct, 然后 the value astract, the value, 对吧?这句段代码的意思是什么呢? 其实就是给我们这个结构题的这个啊,名字给他起个别名叫做 z value, 所以呢,那实际上的一个结构实际上是在这里边去定义的,所以呢,我们只需要找到 z value struct 啊,这个结构题,我们就知道它里边定义是什么样子的。 ok, 那我们来到三百一十六行,我们找到这一行,这一行 从三百一十六行到我们三百二十二行,那这一行呢,就是定义了我们这个变量以什么样的数据结构去存储。首先 他有这四行,一二三四,对吧?那我们来看第一个 value, 他的这个类型是 z value value, z value value, 这显然意见我们可以去猜一下,这实际上就是存我们这个值,对吧?把我们值放在这里边。然后呢,他的这个类型是 z value value 的 z value value 的这个 z value value 又是个什么东西呢?大家来看这款 他的上一个结构题,上一个结构题这里边有一个 z 歪了,歪了,这是他的一个别名,这是他的一个实际的名字,然后这里边又定义了一个结构体的一个数据结构,对吧?看这里边 这款呢,等会大家跟大家细细的讲解哦。我们先继续往下看第三百一十九行 rafcom 的 gc, 这是一个 什么东西啊?有的同学看到这个 gc 是不是就想到就是这个垃圾回收机制了,对吧? gc 他全称就是 gabbage collection, 对吧?垃圾回收的一个意思,那这个 rafcom gc 他这个代表什么呢? 这个在讲垃圾回收机制的时候也会跟大家讲这块呢,大家先做一个了解,他这个就是代表我这个变量被引用了多少次,对吧?被引用了多少次? ok, 那接下来往下看朕的 u 叉 tap 这个是什么东西啊?大家也可以去猜一下。 tap 一般就是代表我们这个类型嘛,对吧?因为你这个变量存的可能有的时候是整形,可能有的是字母串啊,有的时候是数组,还有资源,对吧?这些类型所, 所以呢,我们这个 tf 呢,就代表的是你这个东西是什么?你存的这个 value 是什么值啊?我们可以去看一下我们这个 tf 的一个地利, 让我们来看一下。 okay, i want a car data types is long is long is double is born is a raise object is dream is resource is constant。 大家来看,我们是不是把这这个太普,这个他这里边的这个定义的范,这里边的这个定义 是不是就涵盖了我们 php 里边常见的一些类型啊?对吧?浪长整形啊,然后这个福点,对吧?不, array of jack 等等这些对不对啊?所以呢,我们踏步在定义呢,是在这块, ok, 那我们继续往下看, 我们继续往下看,最后一个 azrafgc, 这个是懂的,什么东西啊?这个是什么东西? 就是代表了我这个变量有没有被别人就是用艾特服,对吧?就是引用这个地址,把这个地址给他付付给另一个变量,就是 ufgc 有没有被就是引用。 ok, 那这个就是我们四个的一个大概的一个解释。那其中我们重点刚刚跟大家也说了,重点要讲的就是我们这个三百一十八行, 这个 z value value, 这么一个结构体的类型,我们可以去看一下这个结构体啊,这个结构体短短的这几,这个这么几行,其实就覆盖了我们 p app 里边的这个八大数据类型,比如说我们这个长整形啊,我们就用这个浪 l value 来表示 double, 这是我们的福点书,对吧? struct, 然后这里边又有一个 struct, struct 它这个时间是什么呢?是我们 straw 的一个存种方式,大家看到了没有? straw 的一个存住方式,然后它 straw 存住的时候用了用,也用了一个 struct, 然后呢这个 surter 里边里边有两个成员面料,一个是我们用过叉,对吧?这是一个主针,然后呢接下来又是个硬体认识,对吧?这里边也存储了我们这个支付创的一个长度,所以 呢,我们有的时候,比如说我们在使用这个串愣死的时候呢,计算某一个支付串长度的时候,因为它的速度是非常快的,为什么非常快?因为它的底层就存储了我们这个支付串的一个长度,对吧?我们直接把这个长度给它返回,回去, 不就不就是他的一个支付刷的长度吗?对不对?所以呢他这个速度是非常快的。好,那接下来我们再来看这个哈西 table, 对吧?哈西 table 这么一个类型,哈西 table 呢是我们 p r p 底层非常重要的一个数据结构,也是我们数组实现的一个 非常重要的数据结构,我们数组要实现就是靠这个哈西提宝,对吧?那当然了,还有最后一个就是这个奥布扎特,也就是我们这个对象,我们这个对象 还有一个资源,资源其实你玩,当我把我们某一个资源打印出来,他其实也是一个长整形的一个东西,长整形的一个东西,还有我们布尔之,我们布尔不就是一零,对吧?一是处零,是 force, 对吧? 用这些数据结构足以能够就是能够存储我们 php 里边的所有的数据类型,对吧?所有的数据类型, ok, 那我们,呃再来回过来,他来再来看 啊,这块呢就跟大家,也跟他,就跟大家刚刚说的,对吧?我们这几个类型我们都是通过这个 这个这个结构体来进行存储的,好,那我们可以通过画一个图来说明一下我们这个变量的一个存储, ok, 那我们来 看一下,就是假如说当我们有将一个值付给我们一个变量的时候呢?就比如说到了 a 等于三,对吧?到了 a 等于三,首先呢他这块有一个到了 a, 这是他的一个变量名,然后呢 我们这个当了三,他是不是也得要存储,对吧?刚刚跟大家说了,首先呢他是不是得有一个 z value value, 这个 z value 呢?就放我们这个值,对吧?可以看一下 这个 z value 是不是就放我们这个值。然后呢接下来第二个呢,就是我们这个 raff count gc, rafa count gc, 它形成了这么一个结构体, rafa count gc, 那 rafcon gc, 我刚刚跟大家说了, 如果值,呃,不管,不管哪个变量去引用,就是去引用我们这个值,他这个 rapcom 的 gc 都要加一,都要加一,对吧?都要加一,那第二个呢,就是我们这个太和类型,对吧? uip, 我们这个类型刚刚也跟大家说了,是不是一个长整形, 对吧?一字浪是一个长整形,是一个整形,对吧?然后呢还有一个意思, raff g c ezrap gc, ezrap gc 等于零 ezrap gc 等于零,那这个 ezrap gc 呢?呃,刚刚也跟大家说了,它这个东西呢是表 明我们的这个啊变量值,有没有把我们这个变量值这个地址付给另一个变量,付给另一个变量,这个后续呢我还会跟大家介绍,还会跟大家介绍。好,那这个就是我们变量底层,当我们有这么一个值了以后呢?它底层就发生了这么一些变化, 有这么一个结构体,对吧?然后呢?我们刀雷等于三,也就是把我们这个值付给了我们这个刀雷,那在内存里边他就会有这样的一个指向的一个关系 啊,其实是就是一个啊,复制引用的一个关系,对吧?复制引用的一个关系,传直引用的一个关系。 好,那这样的话我们 dold 等于三, dold 等于三,在我们内存里边其实就是这么去表示的,我们三的一个存储的一个结构体的方, 方式啊,我们到了 a, 然后呃去引用这个好, ok, 那这个就是我们,呃,这节课跟大家讲的啊,我们底层变量的一个存储,它存储用什么样的数据结构,用什么样的方式。 ok, 那本节课就跟大家介绍到这,谢谢大家。

好,咱们开始来唱歌,那么本节课呢,咱们讲一下咱们 pp 的其他特性啊,那么有哪些呢?咱们来看一下。首先第一个啊,咱 pp 呢是一门脚本语言啊,那么他可以干嘛呢?可以和其他的代码进行混编,就好像我们之前学的 hma 四 ss 啊,对吧?哎,可以跟这些代码进行混编, 咱们来看一下啊,这里边我总共给大家分了五列,对吧?五点啊,让咱们一点一点来看,然后呢?监管问号批评,对吧?然后问号,监管号回来,在这里边,比如说我要说出一句话啊,挨口一个什么呢?挨口一个叫做忽厥左臂 武力啊,累着了啊,那好,那现在写完以后啊,这个时候各位咱们来看,我拿浏览器来刷新,刷新,叫做这都是啊,随便找一个就行了, 来,把这几个关掉,找到我零特性访问,你看这么直接输出了一个,忽觉准备污吏啊,哎,对吧?这句话表示什么意思呢?表示说我要输出这句话,或者说我在浏览器中要输出这句话,哎,就是这个意思 啊,那么一样,那我们正在写,就填满二的时候,比如说在这里面我们会写个引铺的标签,对吧?引铺的标签,然后来个什么呢?来一个 twist 啊,不对,叫做 type, 等于 twist, 对吧?然后内蒙等于一个值,比如说等于一个优质吧,然后这里面来个 y 六, y 六等于什么呢?等于叫做你好,你好,那现在各位你来看啊,呃,来刷新,是不是有个你好,对吧?我可以给他三道写上,我很好, 我很好,我很好,是不是可以这样玩啊?哎,那现在各位你来看啊,比如说在这里边,这个你好,我删掉了。啊, 我见到一个什么呢?监控号?问号, pap 问号,监控号回来,我在这在这块是不是写了我们 pp 的开始和结束标记,对吧?那就代表什么?中间我是不是要输写 pp 代码了,哎,那就写一个吧,比如说挨口一个什么呢?挨口一个叫做 我真的很好来,这时候你看刷新,你看这里面是不是变成我真的很好了,对吧?那你看这个时候我的这个 pap 是不是跟我的 htm 猫精混边了, 哎,那包括在这里边,今天各位你看啊,他们两个是不是挨着的,哎,如果我想要这个标签换行怎么办? 我是不是得加 br 标签才能实现换行啊?哎,咱们家,你看我在这里边来个 br 标签,看到了吗?哎,你看能不 话啊,哎,是不是也可以,对吧?甚至我还可以干嘛?比如说这里边,你看好了,我在这里边再输出一个,输出一个什么呢?输出一个一 hr, 那你看是不是出现了一个一一个横线, 没错吧?哎,那再来,比如说我还能干嘛?跟 c s s, 我们写 c s 是不是得写个 style 标签呢,对吧?然后结束的 style 标签,在 style 标签里面去写什么?写我的钥匙,对吧?首先先写我的选择符,我选择包得, 对吧?就是我的主体,哎,然后干嘛呢?我让他整个页面背景颜色白个狗样的黄色, 或者这个包的,我不写包的了,写什么呢?冒号,冒号,冒号。 root, 就是将样式绑定到根那,哎,来刷新,你看整个页面是不是黄色了,哎,那现在各位来看,我不摆这块写这么写了,我 写了监控号,问号, php 问号,监控号回来是不是在这个中间?我要写出 pp 代码了,哎,在这里边我挨口一个挨口有什么呢?我说我要输出一个红色,对吧?那这个时候你来看 我的页面是不是变红色了?哎,这就是咱们 pp 的特性,干嘛可以跟任何一门语言是不是进行混编的,哎,那么他是怎么来解析的呢?啊?那么咱们来看,我给大家画个图,咱们来,哎,来,咱们来画个图, 你看好了,比如说我当前有一个客户端,对吧?你给我留个浏览器,浏览器啊,据访问服务器,对吧?哎,来,咱们来看一下啊,叫做浏览器,浏览器,这块是什么?这块是服务器,服务器, 服务器,对吧?服务器就是我们的阿帕奇,没错吧?哎,阿帕奇关了一个目录,叫三 w 目录, 哎,那么当我在浏览器里面输入一段地址啊,好比说输入什么呢?输入一个叫做,呃,刚才我们说的是熊哥点 com 下边,零九下边的这个,呃,零五,呃,零五什么特性?点 pp, 对吧?当我访问这个文件的时候,通过这个地址, 通过这个地址是不是要访问什么?访问我三 w 下面的文件, 对吧?哎,访问这三大桌下面的文件,那么好当。阿卡奇啊,看到,咦,你访问的是谁啊?访问的是不是一个 pap 的文件,对吧?哎,在这里边,呃,这里边 是不是有一个什么?有一个叫做零五特性的 pp 啊,对吧?哎,那么阿宝奇一看,我原来访问的是 php 文件, 对吧?阿坝旗,注意,他本身不能去解析 ppp 啊,他不能去解析 pp, 他会交百度微信,交给钱呢?交给挂载到服务器上的这个 pp 引擎, 哎,比如说这里啊,这是我们的 pp 引擎, php 引擎啊,交给 pp 引擎来去解析它自己的文件啊。阿瓦西,把这个文件交给谁?交给 pp 引擎,那么 pp 引擎解析完以后把它认识代码给解析,解析完以后干嘛再返回给阿坝旗 啊?阿玛奇接收到了以后再返回给谁?返回给浏览器,然后浏览器开始显示出我们要的我们看到的这个页面啊,这是整个 访问的过程,哦,咱们访问的过程,那么啊, pap 到底是怎么解析的呢?咱们来看啊,我给大家演示一下啊,大概的意思是什么样的?比如说现在这个文件是不是交给 pp 引擎来解析了,哎, pap 引擎是不是认识他自己代码,对吧?一看啊,这是我的代码,我给他解析了,好比我删掉的就是解析了啊, 哎,从这到这,解析,对吧?解析这个也是解析这个,从这, 哎,从这到这啊,解析啊,解析完以后,这块,哎呀,是不是要把这个解析了,哎, 把他自己的代码是不是全都解析了,哎,还有这块也给他干嘛解析,哎,这块也给他解析了,好了,解析完以后是不是就是这样的效果了,对吧?那这个时候啊,批评引擎,是不是就把这个东西告知给谁了? 告诉给这个阿坝席,说我解析完了,对吧?哎,返回给阿坝席了,那么阿坝席在干嘛?在把这个家伙给浏览器,那么浏览器此时能不能解析这个?哎, 能不能解析这些爱马了,能了吧,这是不是我们 hdmr 的部分了?哎,那所以这个时候我刷新浏览器,你看刷新就是这个效果,就是这个效果,哎,颜色怎么没变呢? 啊?这个没删掉啊,好了,这时候你看走是不是这效果,哎,这就是整个的解析过程啊,什么意思?我再说一遍,听好了啊?如果你没听懂的情况下啊,我再来说一遍,你给我听好了,本身这是不是我一个 pp 的文件, 对吧?哎,那么这个说当用户访问服务器里边的这个阿坝西,对吧?我们通过这个地址访问的阿坝西,对吧?指定了 目录录镜,是不是指定了阿玛奇所管理的目录下边的某一个子目录,对吧?哎,找到了子目录以后,我要访问谁?访问特性点 pp, 哎,访问特性点 pp。 那么阿法奇他本身不会去解析 ppp 文件怎么办?他把 pp 文件交给了 pp 引擎来解析。 pp 引擎来解析,怎么解析呢?这么解析的? 把这里边他认识的代码通通删掉,支持解析, 对吧?哎,包括底下的皮皮眼睛正在解析,哎,哎,对吧?还有底下这块, 嗯,以及从这到这啊,那这个时候 pp 已经解析完以后,这个文件是不是就长这个样子了,对吧?长这个样子了,他不管了,跟 ppp 没有关系了啊?跟 ppp 没有关系了。 pp 请求解析完以后告诉阿布西,哎,我解析完了,那阿玛西干嘛呢?阿玛西在给浏览器,在床位给浏览器告浏览器,哎,解析完了,你显示吧,对吧?那么浏览器这个时候是不是自己可以解析这些来买啊? 对吧?因为这些是不都是浏览器解释型,解释型的脚板,哎,那么浏览器就直接运行这个效果,运行这个页面,那运行这个页面,你看显示的是不是现在的效果? 哎,这就是咱 pap 可以跟其他语言进行混编呐,因为他怎么解析呢?他是把他自己代码,是不是把任何代码删掉,剩下的是不是就是我们 a 加码部分了? a 加码部分浏览器是不是就可以直接减息了?哎,这就是咱们的这个流程,来把它记到这里边来, 这里边啊,我新建一个第三个叫做 pap 语言的其他 特性啊,特性,首先第一个,咱们说了 pp 是一门脚本语言,对吧?可以和其他代码进行进行混编, 混边啊,进行混边啊,哪些呢?好比我们说的 ajtm 是吧? css, gs 等等等等等等。 哎,然后呢?怎么混编的呢?这里边我说了,对吧?怎么混编的?哎,我在这里面直接去写就可以了,写完之后浏览器去法外复习一下的某一个文件,对吧?把这个文件交给他,批评引擎,批评引擎解析完以后再把这个文件返回阿玛奇,阿玛奇再把文件给谁了?给浏览器,那么这个时候就展示出我们要的页面 啊,这就是他们进行混编啊,那么再往下来啊,再往下来,咱们 知道了第一个可以混编以后,再来看第二个问题,咱们呢,咱们 php 中的这个叫做指令风格服 啊,指令分割服,我说指令分割服啊,大家不是那么好理解啊,可能不明白什么叫指令分割服啊?什么长什么东西,对吧?那么他有另外一个名字,他有另外一个名字,叫什么呢?叫做叫做 命令执行服,命令执行服啊,那么这么说的话是不是就好理解命令执行服,我们现实中是不是也会遇到很多的命令执行服啊? 对不对?哎,那么在这里边他也有命令执行服哦,那么咱们说啊,现实中咱们运用到哪些命令执行服了?可能有的人没有什么笼统的干, 爱你哦,我给你捋一捋你就明白了,你看是不是这个道理啊?比如说我们再去玩这个游戏,嗯?什么游戏?我看看啊?呃,叫,就是打枪那个叫什么来着?叫叫叫叫叫,叫叫叫啊, cf, 对吧?或者是按照我这个年龄段,我们那时候玩,玩什么?玩那个 反恐啊,半条命也是打枪的啊,那么就比如 cf 吧,那么 cf 现在玩的很火,比如说在这里边我要想做个人机,我玩,我自己开个局啊,开个人机对战,那么这个说电脑人经常会说什么 follow me, follow me 什么意思?是不是让我跟着他走,跟着他走啊, 对不对?哎,那这个是不是就指定指定命令执行服?当我一听到蜂蜜告诉告诉,跟我走,对吧?我是不是就跟着他走,那是不是就执行了,对吧?包括大家都了解的拍电影,对吧? 拍电影是什么?拍电影是 x, 是不是你就要开始干嘛开始拍了,对吧?一喊咔,是不是一条命令,一,当所有的演员一听到咔的时候是不是就停止了? 哎,这就是咱们现实中的这个命令执行服啊,也叫做指令分割服,那么在 pap 里边有卡跟 x 什么没有? pp 中的这个命令执行服是什么呢?说白了就是分号, 分号啊,就是这个分号,就是这个分号啊,那各位你来看,我在这里边有有有,这是解析完的啊,欢迎回来欢迎回来欢迎好了, 现在你看啊,我要那个文件还回来了,有屁屁代码了对吧?刷新还是这个效果?那比如说在这里面继续我挨口一个什么呢?二 hr, 你看当我挨口完以后,我后面是不是给了一个命令,子子孙福 对吧?三 hr 四 hr。 哦,我每写一个效果,你要能想到啊, 他的乱七里面显示是什么意思啊?能显示什么效果啊?现在各位你看每一句写完我是不是都加了这个指令分和服了,对吧?那这个时候你看我是不是一二三四五,每一个都有横线,哎,如果此时你看好了,我把第三个 a 那个之后是不是删掉了?当删掉以后,现在各位你看帮我一刷新浏览器说爆错了,他说什么错误,说我的语法错误,对吧。哎,缺省的会不能解析点什么呀? 逗号或者分号,是不是告诉我车友逗号或分号。哎,你说熊哥我看不懂,因为看不懂,别看了啊。看不懂别看了,看不懂你还看他干嘛呀,你不自己为难自己了吗?对不对?看不懂怎么办? 给我开最后这个数字,你看印在在哪,在我这个目录下的这个文件是不是零五特性啊?哎,哦了,这不第几行?第六行 是不是在第六行有错?哎,那你不要上来就三个啊,告第六行我去找第六行,不行,千万别这么做啊,他给你报的第六行,好在你去排错的话,你记住了,一定要从报错的上一行开始去找 从报错的上一行开始去找,这是为什么呢?因为是什么?因为是有可能是上一行的错误,导致你当前行无法运行,所以他报的是当前行的错, 所以当你看到这个错误的时候,记住了,要从你上一行开始找。现在啊,我们是 pap 初级阶段,大家刚刚接触,在书写的时候啊,会经常性的报错,这很正常,但是怎么 我们来解决,各位注意了,要从报错了上行开始找,不要从报错了当年行,那现在他给我报的是第六行,我从第五行开始看,咱们来看我找我的第五行,第五行在这里,你看第五行是不是这后面没有这个命令执行服,对吧?哎,我加上以后,哎,是不是好了, 对吧?其实这就这一句,就相当什么呢?相当于拍戏了啊,怎么就拍戏了呢?比如说那拍戏之前,导演会叫我过来告诉我说,什么这节课啊,不是这节课,这场戏啊,你脱多少露多少,对吧?露个肩膀头,对吧?完了,说什么什么话,听明白吗?完,导演说,听明白了,那导演一喊, x, 是不是开始拍了,对吧?哎,实际上这里边也一样,你可以把这个最后的最后这个分号理解成什么呢?理解为干啊,干哥,按干啊, 怎么干呢?这里边说我要输出,输出什么呢?输出左臂无力啊,一个 b r 是我要输出,我要输出,我有输出吗?没有,对吧?哎,当遇到什么?当遇到这个分号,也就是我们的子列分号服以后才开始干嘛?才开始输出,知道吧?才开始输出, 这就是咱们的指令分个符啊,所以记住了,每一句话后面都要给我加这个,对不对?哎,所以这里边记住了任何一句,批评代码之后必须加的这个,这个列分个符,不然的时候不能执行啊, 哎,你想想啊,那有人说了,那你看,熊哥我多写两句,写到最后文,我再执行,行吗?那肯定不行啊,那导演跟你说,这个戏说第一场戏让你这么拍,第二场戏这么拍,这三角戏这么拍,你能记住吗?你说也记不住,哎,所以这里边说一场,做一场,对吧?我要输出这个 一横线,对吧?导致他干开始,对吧?我要输出二横线,遇到他以后干开始,哎,所以这里面各位记住了,每一行后面必须加一个四零分啊,来,咱们来记一下 啊,任意,对了,任意依据,任意依据。 php 代码之后啊,都必须使用什么呀?使用这个,呃,指令分格服啊,进行分割, 这是第一点。再来看,如果在当前哦,我的这个代码是我当前 ppt 中最后一句的话,我给他删掉了啊,这个时候你看会不会报错, 哎,有包装吗?这回是不是没有了?哎,所以这里边你看好了哦,当他是最后一代码的时候,可以不执行这个, 不写这个指令风格符。为什么呢?因为当他执行到这以后,再往下执行,遇到建国号问号了,他会把这个当成最后一句,自动添加这个分号啊,自动去执行,所以在最后而句的时候,我们可以领省略到这个指令风格符啊。 那来,咱们来记一下啊,这如果该 php 代码啊,已经是最后一句代码了,对吧?可以不写指令风格 分割符啊,这就是咱们 pp 中的指令分格符啊,分号每一句代码后面一定要加啊,最后一句可以不加,但是我不建议,我建议你还是干嘛呢?孩子,加上这是书写习惯啊,因为老是最后一不加,最后一不加,时间长了你可能就总忘加了,那总忘 加了,你的报错率就提高了,那么尤其在初学阶段,一报错,当没有人帮你来解决的时候,你就会很苦恼, 对吧,你就会对他产生反感啊,所以这个时候你不要抱错,记住,他就是你的女朋友,你要爱惜他,以后他才会真的去爱惜你啊,这就是咱们的 pap。 好吧,那么咱们知道了这个指令分割符以后,咱们再来看下一个特点啊,什么呢?咱们程序代码的分类啊,在这里边记住, pp 代码一共分为两种啊?哪两种呢?第一种情况叫做哎哎哎哎哎 啊,叫做什么呢?单条,单条条的 php, 豫剧,豫剧啊,这是第一 一种分类啊,分成单挑了,就好比刚才我写这些,你看这些是不是一句一句的,哎,这叫做什么?叫做单挑的皮皮代码。那么另外还有一种什么呢?叫代码块啊,代码块是什么玩意呢?比如说这里边你看好了,我问为什么呢?我问我说王 红利啊,真是一个错了啊,不能这么写啊,对了,王红利是一个 女人吗?对吧?哎,是一个女人吗?如果是我就挨口一个叫做红利约,约什么呢?大爷,大爷,来玩会玩会啊,对吧?否则呢?否则挨口一个 叫做红利约啊,约什么呢?叫做老子不解客,老子不解客, 接客。好了,那现在各位你看,当我问我说黄狐狸是个女人吗?如果是他会输出这个,如果不是他会输出这个,是吧?那你看这种格式的,他就叫做代码块,他就叫代码块,哎,是不是只有这一块啊, 对不对?哎,那现在你看啊,来刷新红鲤鱼,约什么约,大爷来玩会啊,那也证明是王红林是女人了。 哎,实际上这个这个程序真的是这么判断的?不是啊,只是我知道这个逻辑是怎么回事,所以我可以这么去写啊,你们只需要了解这是一个代码画就可以了啊,不需要了解这个程序什么意思,我会单独的去讲啊。 来,我先来记一下啊,另外一种叫什么呢?叫做 php 代码块啊,代码块 就是后期我们要学习了流程控制里边的啊,有代码块对吧?还有刚才我写就是流程控制啊,还有未来的函数以及我们 pp 中的这个类啊,这些都是代码块的范围啊,剩下的啊,都是我们的单挑语句。 好了,这回能区分什么叫做单挑语句,什么样的叫做单把块了吧,哎,单把块只一堆,单挑语句只一条啊。 啊,那么再往下看,来,我们知道程序的分类以后,再看第四点,第四点是什么呢?咱们关于程序的注视问题,哎,在我们学习 html 也好, css 也好,是不是都有程序的注视, 对吧,那么在这里边一样偏僻,里边也有程序的注视,那么注视那在这里边会分为一样分为两类,哪两类呢?单行注视和 多行注视啊。单行注视有两种格式啊,咱们来看,比如说当前这个三 hr 我不要了,哎,注视了,注视以后,这个时候你看 刷新有三吗?这没有啊,哎,而且注意了,我在这个浏览器元旦码里面能看到吗?你看好了,有三 hr 吗? 这没有,对吧?哎,为什么?因为他是服务端的脚本语言,对吧?在 pp 去解析 pp 引擎,在解析这个代码的时候,一看到注册,他那边就已经给你删掉了,所以返回到浏览器的时候,你看不到啊,你看不到, 那这种格式就是单条的 pp 代码,对吧?我在代码前面啊,不对,单行的注视啊,我在代码前面给他加了两个双斜线,对吧?这个时候是不是就把这个三 h r 注射了?那么另外还有一个,还有一个格式什么呢? 比如说五,我也不要了,在这我给个井号,井号,给个井号,他也是单行注视。那你看这个图,哎,五十位没有啦,对吧?三和五十位都没啦,哎,这两种格式都是我们的单行注视,来 一个就使用斜线啊,后面是主持内容啊。第二个是井号啊,后面 是主持内容,这是什么?这是咱们的单行主持啊,叫做单行主持啊。那么额外还有一个什么呢?还有一个多行主持, 多行出示。那在 pp 里边多行出示,跟我们 css 一样,以斜线星开始啊,然后呢?以星斜线结束,中间是什么? 中间是注视的内容,以星斜线结束,这跟我们 cs 还是一样啊。哎,那现在咱们来看,比如说我从第一行到第三行,我不想要了啊,不是第一行,从一 hr 到第四个 hr, 不想要了怎么办?这么多,我没有必要全写这个,我直接以斜线星开始,到第四个以星 斜线结束。哎,这种你看整个啊,所有的 hr 那块全没有了,看到了吧,这都出事了,哎,那一样,比如说我说我从这到这都不要了,怎么办呢?一样以斜线星开始,以星斜线结束,行不行? 哎,各位,你看好了,这块颜色是不是都没有变化呀?哎,你看如果运行的是报错的,报什么错?还是语法有错缺省的这个信号,也就是说 解析不了在第十三行,那你看在第十三行是不是有这么一个没错吧,哎,所以这一会要记住了,什么意思呢?在多行注视中不能去包含多行注视,你看好了,我是不是多行注视里边,对吧?包含了一个多行注视, 哎,为什么不能包含呢?因为我们注视以斜线星开始找到离自己最近的星,斜线结束,所以后面的这个他不管了啊,所以多行注视里面不能签到多行啊,你看我把它删掉,哎,你看这时候是不是可以了, 对吧?来,你看刷新这回就没问题了。哎,所以这里边各位要要注意的一点是什么呢?注意的, 注意啊,多行注视,多行注视中啊,不能包含多行注视,对吧?因为 这个注视以斜线星开始,找到离啊自己最近的星,斜线结束 啊,结束,所以多行注视中不能包含多行注视啊,这就是咱们程序的注视问题, 那么咱们再往下看,再看最后一点什么呢?关于空白字符的处理问题啊,咱们来想一想,在我们 htmrcss 里边啊,我们有这个概念吗?比如说在这里边我来个 p 标签 啊,接触的皮标签,然后写一个叫做我我我我我我我好爱你我好爱你,然后谁呢?那个小唐啊,然后呢?在这里边我,你看啊,我给的任何的这个这个这个这个,这个叫什么?黑宝剑,对吧?换行 啊,就是回回车空格,对吧?然后在后面我再来个 a 标签,来个 a 标签,哦,结束的 a 标签,结束的 a 标签 hr ef, 这里边叫做去唐嫣家家找唐嫣来,你看 我任何的换行回车是不是在 atm 当中都没有什么作用啊,对吧?这个是 p 标签,看不出来。那好,我 a 标签后面我再给个标签。 给个什么呢?给个 b 标签,我 a 标签后面紧挨着一个 b 标签啊, b 标签结束的 b 标签,对吧?这叫什么呢?到唐人家家了啊,我 出了,那 b 标签不加出吗?对吧?你看是不是他出了,对吧?他比别的文字要出吧。那现在各位你看在这两个标签中有任何的空隙吗? 没有吧,我把这个颜色注射掉啊。来,你看在这两个标签中有任何的空白吗?说,没有,哎,现在因为什么?我代码里边这两个标签是不是就紧挨着的,对吧?现在你看我给这两个标签,哎哎哎哎, 你看好了啊,一会代码哪去了?嗯?跑哪去了?包烟回来,哎, 来来来,来来来来,空格空格空格空格空格空格。现在你看啊,我这换行空格是不是有很多了?哎,当他有的时候,这个时候你再看来刷新 这个时候是不是就增加了一个空格呀?哎,也就说你给再多的空格,他最多也就当一个空格而已。那么在 pap 里边呢?你看是不是这样的啊? 在评评里边我一样先说出一句话,就是 ico, 我是,我是 php 中的内容, 内容啊,我是 pp 中的内容,然后呢,这个说我再挨口一个,我挨着他后面啊,挨口一个叫做你好,小唐。哎啊,写完以后你看这两句中间有没有空格啊, 有吗?内容跟你要不要有吗?说没有。哎,那好,那在这里边各位你再看好了,我在这里边再去干嘛呢?随意的去敲回车 黑宝剑鬼车空格啊,好了,给完以后现在咱们来看,走你走你走你走你。我刷新了啊,来,有吗? 也没有对吧,所以对于空白服在 pp 里面就一句话,什么话呢? pp 不解析任何空白 知道对吧?所以各位在书写代码时啊,一定要 注意怎么样代码的格式啊,要有缩进要有缩进对吧?哎,你看好了,我这里边 pp 的格式怎么写的,我是不是写完以后顶着写我然后写完马上回车,回车进来黑魔剑缩记开始写内容 对吧?哎,记住了,我怎么写的格式啊,日后我怎么写的格式你就按照我的格式去写,就是符合规范的啊,因为我会按照 psr 零到 psr 式的规范去带大家带着大家书写批评代码哦,我们批评代码也有规范, 他的规范就是一个组织叫做 ps sr 组织啊,规定的对吧?啊,规定的,呃,他有这几个版本是从 ps r 零到 psr 四的啊,那么我们遵循遵守的这个版本去写我们 pp 的代码就可以了 啊,这些就是我们 pp 中大家要掌握的这些个性,那么咱们来看一下啊,首先 pp 四门脚本语言可以混编对吧,以及他的质量分开符分号还有程序代码的分为分为两类, 一类是什么?一类是单行单条的,一类是代码块,那么另外城区的注册问题总共有三个,分为两类, 一类叫做什么单条的注视,一类叫做多行注视。那么单条注视里面有两种,一个叫做什么双斜线,一个是井号多行注视里面有个斜线,星星斜线,对吧?然后呢,要注意的是什么?注意的是多行注视中不能再包含多行注视了,哎。然后这往后 关于空白服的这个处理问题是 pap 不解析任何空白服啊,这就是咱们这节课要讲的 pap 的这个特性啊。好,这节课就上到这里,关注下一个视频 pap 中的变量。

这是全球最好的语言,兄弟们今天聊一下这个 p h p 的历史, p h p 之父叫什么?叫拉斯姆斯勒德夫,四九九四年就创建了,是一种由 c 语言编写的这个简单的通用网关接口,最早是用来追踪这个在线简历的访问,所以他这个英文的选择叫 pose 通黑及 tools, 随着这个时间的推移,他就重显了 pgb 多了就开源了,所以干 pgb 的兄弟们,九四年的时候这个 pgb 就发布了,这个时间确实很早了,到了这个一九九五年六月份的时候,这个 pgb 二年就诞生了,他增加了一些什么呢?增加了这个数据库的访问的一些设计,所以这个时候就可以开发这个动态的语言了, 然后二点零就诞生了,二点零诞生的时候,全球有五万多个网站就就已经用上 p a p 了。到了这个九八年六月份的时候,我就正式发布了这个 p a p 三点零, p a p 三点零就不再称为这个破胜的烘 pag 了,因为就不想成为这个个人主页了,我就改成了叫 p a p 了,它中文名字就叫 超文本预处理器。相对二点零呢,提供第三方的开发者一些协议 api 的这个基础的结构,还吸引了大量的开发者,大家一起来干嘛?肯定都可以来提高一些新的模块。两千年五月份的时候就发布了这个 php 四点零,这个新的 php 的核心呢,就称为叫正的, 这个引擎就加入进来了,它支持了更多的这种什么 vivo 服务器啊, httpc 型这个输出缓冲,还有更多一些安全的处理用户的一些输入的一些机制,还有一些新的这种语言结构上面就已经推出来了。 到了这个二零零四年的七月份, pgp 五点零就就发布了,这个时候这个真的已经二点零的这个就升到二点零了,就引入了这个时候 pdo, 这个就引流性全是 pdo, 就是说 php, 然后我超了,也就是在这个五点零的这个刚发布这个前面四点零和五点零的这个交叉的点就开始用到 pdp 了, 然后到了这个二零一五年六月十一号正式发布的这个 pab 七了, pab 七要比 pab 五点六的这个性能上面要提升的这个两倍,而且全 全面的支持了这个六十四位的。这个后面 p g 八呢,是在这个二零二零年的十一月二十六号就正式发布的,这个 p g 八点零取得一些重大的更新外,这个 p g b 八带来一些不错的一些新功能,比如说这个 g i t 的 联合类型啊、属性啊,以及更多的东西,还可以全面支持着更多一些大型的应用。在并发上面的性能上面也有一些显著的提升。当前的最新的版本,这个 pg 版本是 pg 八点二五,所以这个 pgp 还是有一个很这个光辉的历史未来上面我相信可能也会推到 pp 九点零。现在这个互联网上面也有很多这种公司里面都一直在用上着急的 阿里啊、腾讯啊,百度,所以大家都一直都在用,包括这个很出知名 facebook 公司的这个小渣,小渣最早就选 pap 了,所以他搞了 facebook 之后,他就抛弃了很多这种其他的语言的,就用这个 pap 了。为什么说 pap 是全球最好的语言呢? 但我不是说其他员不好,但是 pap 确实有自己的光辉的历史,我也一直很看好这个 pap 的未来确实能解决很多事情,特别适合一些比较小的一些团队,中小型的团队能够快速的迭代开发。