Black Left老师讲课了——大杂烩一(PHP)

2019年4月30日


hero


一、开场白

            同学们又见面了,今天我们接着PHP快速入门系列“课堂”的文章接着讲,我们这几天需要讲的内容分别有:变量作用域、操作符、使用可变函数、条件语句、迭代循环、控制结构和脚本跳出、新的一种控制结构语法、declare扩展。额,是不是看了后感觉,怎么一下子讲这么多,因为,这个东西就是让大家一下子都了解。之后再通过更多高级的或者一些程序来好好的理解和消化才好(只是个人看法而已)。那么我们就开始我们的“课程”吧?首先第一部分

二、变量作用域

            我们来看看一本入门书中怎么讲的吧,书中所说,“作用域是指再一个脚本中某个变量可以使用或可见的范围”,是不是很容易就理解了呢?其实就是程序中变量都是有作用域的,比如你写在一个文件中,那么其他的文件直接能够访问到吗?这个之间就是一个作用域,不能够,那么在一个程序源码中也是存在各种的作用域的。比如你在函数中写的一个变量,你在外部是不能够直接访问到的。这就是作用域。那么在PHP的世界中,有6项基本的作用域规则,我们分别来看看都有哪些规则吧。如下列表:

1.内置超级全局变量可以在脚本任何地方使用和可见。

“我们来解读一下,什么算是超级全局变量呢?比如这样的变量,$GLOBALS、$_SERVER|GET|POST|COOKIE|FILES|ENV|REQUEST|SESSION,可能看着有点儿懵,这个东西呢我们可以之后了解,你就记得,但凡是$_+上面的关键字的然后再加上['变量名称']这样的都当作超级全局变量。那么就是在脚本的任何地方都是可以使用”

2.常量,一旦被声明,将可以在全局可见

“这样来看,也就是说常量可以在脚本很多地方都可见,就是在函数的内部,也是可以使用的”

3.在一个脚本中声明的全局变量在整个脚本中是可见的,但不是在函数内部。

“这句话让我看完后瞬间懵逼,恩?恩?恩?黑人问号脸都要出来了,其实就是这么理解这里的全局变量就是指在这个文档中的基本变量,假如我们创建了一个PHP的文件,文件内容是这样的:

输出的结果就是,找不到$testOne,我们的$testOne-Three这三个变量此时我们就乘坐全局变量,是的,这个全局变量和之前的那种所谓的全局不能理解成一个样子。”

4.函数内部使用的变量声明为全局变量时,其名称要与全局变量名称一致。

“这段话怎么理解呢,其实就是在函数内部如果想要使用全局变量,怎么使用呢?上面的例子我们看到了,直接使用是不行的,那么PHP的世界里,想要使用就要用到这两种方法,这两种方法我们都用代码来演示,如图:


5.在函数内部创建并被声明为静态的变量在无法在函数外部可见,但是可以在函数的多次执行过程中保持该值。

“这里引入了静态变量的词汇,其实就是一种不能够被释放的局部变量,怎么理解呢?静态变量在函数中赋值后,多次执行函数,这个变量的值还是存在的而且是不会重置的。看下列代码:


大家应该看出来了吧,但是这样的静态变量在函数外部是无法访问的,如果在外面写echo $One或者echo $Two,那么将会提示错误”

6.在函数内部创建的变量对函数来说是本地的而当函数终止时,该变量也就不存在了。

“一般的变量只存活在栈中,而当我们的在函数中声明了局部变量时,调用函数那么这个变量就被创建出来了,当函数执行结束后,那么这个局部变量就会被释放”

三、运算符

首先我们来看一下操作符的定义,它是用来对数值和变量进行某种操作运算的符号,什么意思呢?就比如我们数学中,“+”号,就是两个数字相加,你可以把这个东西就理解成是运算符。同样的,PHP程序世界中也是有一些运算符的。首先我们来看一下PHP的世界里面都有什么运算符:


一下子看这么多运算符是不是难免有点害怕,不要慌,这个东西很好理解,我们一个一个看,这个是官方给出的图,我们把运算符优先级放到最后再看。先看算术运算符。

(1)算术运算符

我们下面贴出官方给出的算术运算符都有哪些:


这和我们学校里面学习的基本数学知识,这个是完全一样的。取反,加法,减法,乘法,我们就不说了我们看一看除法和取模这两个算术运算。我们小学学习了运算后我们就会进行人工的运算,比如8➗5=1.6,我们会进行一个小数点的计算,但是如果我们是计算机执行呢?一般情况下那么就不会进行人工的计算计算成1.6,而是会舍弃掉小数部分,变成1。但是但是但是我们的PHP世界呢,进行了一点点小小的细节修正,那就是除法运算符总是会返回浮点数。所以在我们PHP的世界里面,8➗5可以并且直接输出的结果就是1.6。再来看一下我们的取模,取模其实就是余数,比如如下代码:


结果就是3,这就是余数,所以取模你就可以理解成取余。

(2)赋值运算符

接下来我们看一下赋值运算符,基本的赋值运算符是“=”它不是等于号,它代表的是右侧元素赋给左侧元素,比如$a = 3那么就是3这个值赋给$a

六、位运算符

接着看一下位运算符,我们看官方的解释就可以了:


按位的运算符,一般情况下,注意是一般情况下我们用的还是很少的。

(3)比较运算符

我们再来看一下比较运算符,比较的运算符一般返回的就是TRUE或者FALSE了,我们来看一下官方给出的比较运算符表格:


我们看到太空船运算符,这个有点类似什么呢?类似把上面的大于的情况,等于的情况,小于的情况这三种情况都涵盖了。所以用这个还是很方便的,但是要注意是PHP7才开始提供的,所以用的时候你要注意,如果你的运行环境也是很新的,那么你可以用,如果不是很新,建议还是不要用了。最后$a??$b??$c这样的比较运算符你可以理解成检测谁是第一个存在并且不是NULL的一个操作数,我们看一下代码:


看到了吗?输出结果是1,那么如果我的$a是NULL呢?如下图:


就变成了那么如果我们$a不是NULL只有$b是NULL呢,这次我们换一换内容你会有新的发现:


对,没错,其实输出的是第一个不是NULL的内容。

(4)错误控制运算符

我们再来看看错误控制运算符吧,这个很简单其实就是一个简单的“@”符号,是的就是这么简单,它可以干嘛呢?它可以放到任何的PHP表达式之前,用来消除掉表达式可能产生的任何错误信息,我们看一下代码:


在程序的世界里面0是不可以当作除数的,所以我们看到了warning警告,那么我们用一下@会怎么样呢?


还是会有错误,但是你看看错误提示,我举得这个例子有一点不恰当。

再来看一个:


如果用了呢,结果是什么?如下图:


没有什么相关的错误提示了,只不过还是有错误所以执行不了。

(5)执行运算符

接下来我们继续看,执行运算符,PHP会尝试将shell的命令通过反引号来执行,比如``,这就是反引号,例如官方给出的代码示例:


这段代码就是执行shell命令,通过反引号来表明的。

十、递增/递减运算符

PHP世界里面的递增递减符号是这样的,如下图:


这些都有什么区别呢?我们下一篇文章再开始从这里仔细的讲解这些内容。



本内容纯原创,转载请标明出处————————————作者:Black Left    日期:2019年4月30日17点42分

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容