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点59分

猜你喜欢

转载自blog.csdn.net/CPC_BlackLeft/article/details/89714082