前言

在上一章中,我们初步了解了PHP的网页基础和PHP的入门基础,今天继续给大家分享更多有关PHP的知识。

理论知识看起来可能比较枯燥一些,但是我们的实践(敲代码)毕竟离不开它。

只有理论与实践相结合,才可以用最少的代码实现更多的功能。

***本章关键字:运算符;可变变量;取址符号;分支与循环;流程控制语句goto。

下面,我们来看了解一下PHP中的运算符及更多PHP知识基础

运算符

1、算术运算符:+ - * / % ++ --

2、赋值运算符:= += -= *= /= %= .=(连接字符串)

3、比较运算符:> < >= <= == === <>、!= !==

==:要求值相等,而不需要数据类型相等

===:要求值和数据类型,必须相等

!=:只比较值,值相等为false

!==:比较值和类型,值和类型都相等为false

4、逻辑运算符:and/&& or/|| not/! xor

&&和||进行运算的时候,会发生短路:
当左侧能够判断出结果的时候,便不再执行右侧!!(&&左侧为假时,结果即为假;||左侧为真时,结果即为真)

xor:逻辑异或。两边只有一个对的,结果为true;两边同为true或同为false,结果都为false。

5、位运算符:

将10进制转为2进制,然后再进行运算。

&:按位与,转成二进制后,两个都是1,结果才为1
|:按位或,转为二进制后,有一个为1,就是1
^:按位异或,转成二进制后,两个不相同为1;两个都为1,或都为0,结果均为0。
~:按位取反,转成二进制数后,所有位数取反。1--->0 0--->1
<<:左移:转成二进制后,左移几位,右边空余位数补0。
num << n 相当于num*2^n(※※※)
>>:右移:转成二进制后,右移几位,左边空余位数补0。
num >> n 相当于num/2^n(※※※)

6、其他运算符:
表达式1?表达式2:表达式3:
表达式1成立执行表达式2,否则执行表达式3
``:调用系统dos环境下的命令行并执行。但是由于安全性以及跨平台性,我们并不支持使用;eg:`ipconfig`
@:错误信息控制符:可以临时屏蔽到一些小的错误信息。但是不提倡使用!

可变变量

在一个变量名前面,再加一个$符号。即可将第一个变量的值,作为新变量的名字。

$hello = "hello1";
$$hello = "world";//$hello1
$$$hello = "Jredu";//$world

取址符号

&:变量名前加&可以取出变量在内存中的地址,并可以赋给另一个变量。
$num2 = &$num1;//取出num1的地址给num2,相当于我们说的引用数据类型。num2和num1的值将同时改变。

分支与循环

1、if中的判断条件
详见请点击“好奇就点我吖!”上一章中的第二部分【PHP入门基础】,在这里,博主就不一一介绍了……

2、elseif
PHP中,elseif语句可以连写,也可以空格分隔;

例如:
else if() √
elseif() √

3、switch
PHP中,switch结构的判断,使用==判断,而非===
PHP中,continue可以用于switch结构,作用与break相同。
php中,continue和break可以后接数字,表示跳过几层循环或switch;
eg:break 3;表示终止3层循环

4、do-while循环
do-while循环的最后必须要加分号。
do{

}while();

5、流程控制语句

1、break:终止本层循环;break后面可接数字,表示终止几层循环。break 3,终止3层循环。
2、continue:跳过本次循环;continue后面也可接数字,表示跳过几层循环
3、return:终止当前函数,并返回值(如果有的话),但是一般只在函数中使用,脚本中不建议使用return;
4、exit(mixed 结束语)/die(mixed 结束语)函数:直接结束当前PHP脚本!!
如果有参数传入,则先打印出结束语,然后结束当前脚本。

流程控制语句goto

1、用法:

定义一个跳转的锚点,"标识符"-->"jr:"
在任意位置,设置goto语句,跳转到指定锚点:"goto jr;"

2、作用:

遇到goto语句时,直接跳转到设置的标识符位置。

3、用于实现分支。
注意:goto语句只是让当前的程序控制流跳转到指定锚点,但是并不负责往下执行几行代码。
即,从锚点往下所有代码会依次执行。如果实现多路分支,需配合goto语句,跳过其他分支。(详见案例如下)

4、goto实现循环:

详见案例。但是,goto中,跳出循环不能使用break。

5、goto语句的优缺点:
①优点:使用灵活方便,指令级语句,效率更快,性能更好。
②缺点:goto的大量使用,对于代码的结构化是个灾难。
不利于清晰的代码结构,不利于理解代码,而且极有可能跳过某些重要的声明语句,导致代码错误。

理论不如实践,详情看下面代码↓↓↓

 //goto语句实现分支
/*$num = true;
if(!$num){
goto jh;
}else{
goto jr;
} jr:
echo "3333333333333<br />";
echo "4444444444444<br />";
goto jj; jh:
echo "5555555555555<br />";
echo "6666666666666<br />"; jj:*/ //[1]goto循环
$num = 0;
jr:
echo "1222222222221<br />";
$num ++;
if($num<5){
goto jj;//通过goto跳出循环,注意不能使用break
}
goto jr; jj:
echo "hahaha"; /*//[2]goto实现循环
$num=0;
jr:
echo"11111<br>";
$num++;
if($num<5){
goto jr;
}*/

以上就是今天要和大家分享的内容,希望对大家有所帮助~

博主再次提醒大家,理论知识是敲好代码的基础,不能忽视!【PHP基础入门】会持续更新,感谢大家的关注~~~

作者:夕照希望
出处:http://www.cnblogs.com/hope666/ 

PHP基础入门(二)---入门必备哦!的更多相关文章

  1. Swift语法基础入门二(数组, 字典, 字符串)

    Swift语法基础入门二(数组, 字典, 字符串) 数组(有序数据的集) *格式 : [] / Int / Array() let 不可变数组 var 可变数组 注意: 不需要改变集合的时候创建不可变 ...

  2. IM开发者的零基础通信技术入门(二):通信交换技术的百年发展史(下)

    1.系列文章引言 1.1 适合谁来阅读? 本系列文章尽量使用最浅显易懂的文字.图片来组织内容,力求通信技术零基础的人群也能看懂.但个人建议,至少稍微了解过网络通信方面的知识后再看,会更有收获.如果您大 ...

  3. 2.Python爬虫入门二之爬虫基础了解

    1.什么是爬虫 爬虫,即网络爬虫,大家可以理解为在网络上爬行的一直蜘蛛,互联网就比作一张大网,而爬虫便是在这张网上爬来爬去的蜘蛛咯,如果它遇到资源,那么它就会抓取下来.想抓取什么?这个由你来控制它咯. ...

  4. Python入门基础学习 二

    Python入门基础学习 二 猜数字小游戏进阶版 修改建议: 猜错的时候程序可以给出提示,告诉用户猜测的数字偏大还是偏小: 没运行一次程序只能猜测一次,应该提供多次机会给用户猜测: 每次运行程序,答案 ...

  5. Python爬虫入门二之爬虫基础了解

    1.什么是爬虫 爬虫,即网络爬虫,大家可以理解为在网络上爬行的一直蜘蛛,互联网就比作一张大网,而爬虫便是在这张网上爬来爬去的蜘蛛咯,如果它遇到资源,那么它就会抓取下来.想抓取什么?这个由你来控制它咯. ...

  6. C#基础入门 二

    C#基础入门 二 循环语句 与C语言中用法相同. continue:结束本次循环(continue)后面的代码不再执行,进入下次循环(通常与if连用). 数组 一维数组定义:int[] intArra ...

  7. 转 Python爬虫入门二之爬虫基础了解

    静觅 » Python爬虫入门二之爬虫基础了解 2.浏览网页的过程 在用户浏览网页的过程中,我们可能会看到许多好看的图片,比如 http://image.baidu.com/ ,我们会看到几张的图片以 ...

  8. 微服务(入门二):netcore通过consul注册服务

    基础准备 1.创建asp.net core Web 应用程序选择Api 2.appsettings.json 配置consul服务器地址,以及本机ip和端口号信息 { "Logging&qu ...

  9. 脑残式网络编程入门(二):我们在读写Socket时,究竟在读写什么?

    1.引言 本文接上篇<脑残式网络编程入门(一):跟着动画来学TCP三次握手和四次挥手>,继续脑残式的网络编程知识学习 ^_^. 套接字socket是大多数程序员都非常熟悉的概念,它是计算机 ...

  10. [转帖]脑残式网络编程入门(二):我们在读写Socket时,究竟在读写什么?

    脑残式网络编程入门(二):我们在读写Socket时,究竟在读写什么?     http://www.52im.net/thread-1732-1-1.html   1.引言 本文接上篇<脑残式网 ...

随机推荐

  1. 如何选择适合自己的CMS建站系统

             在互联网发展突飞猛进的今天,可谓”得市场者得天下”,而电商已成为占据市场速度最快.范围最广的手段,进而网站建设也逐渐引起商家重视,并深入到了企业和个体的发展战略之中. 如今企业建站已 ...

  2. 使用nodejs进行WEB开发

    这里,准备从零开始用nodejs实现一个微博系统.功能包括路由控制.页面模板.数据库访问.用户注册.登录.用户会话等内容. 将会介绍Express框架.MVC设计模式.ejs模板引擎以及MongoDB ...

  3. Spring BeanFactoryPostProcessor

    使用场景:当在配置文件中需要配置Bean(参数不同,class相同,id不同时)冗余的情况 继承 BeanFactoryPostProcessor 覆盖 postProcessBeanFactory( ...

  4. linux 程序调用system执行命令

    正确使用system方法,判断返回值 int exeCmd(const char *cmd) { pid_t status; status = system(cmd); == status) { Wr ...

  5. Unity C# const与static readonly的区别与联系

    using System; namespace Test { class MainClass { //懒人写法的单例 class Weapon { public static readonly Wea ...

  6. HDU 2846 Trie查询

    给出若干模式串,再给出若干询问串,求每个询问串作为多少个模式串的子串出现. 如果一个串是另一个串的子串,则一定是另一个串某个前缀的后缀或者某个后缀的前缀.根据字典树的性质,将模式串的每一个后缀插入字典 ...

  7. jsp实现仿QQ空间新建多个相册名称,向相册中添加照片

    工具:Eclipse,Oracle,smartupload.jar:语言:jsp,Java:数据存储:Oracle. 实现功能介绍: 主要是新建相册,可以建多个相册,在相册中添加多张照片,删除照片,删 ...

  8. bzoj4816 [Sdoi2017]数字表格

    Description Doris刚刚学习了fibonacci数列.用f[i]表示数列的第i项,那么 f[0]=0 f[1]=1 f[n]=f[n-1]+f[n-2],n>=2 Doris用老师 ...

  9. bzoj4818 [Sdoi2017]序列计数

    Description Alice想要得到一个长度为n的序列,序列中的数都是不超过m的正整数,而且这n个数的和是p的倍数.Alice还希望,这n个数中,至少有一个数是质数.Alice想知道,有多少个序 ...

  10. 【转】为什么delete以后指针还能被赋值

    首先,系统知道哪一部分堆的线性空间被占掉了,new就是起这个作用,仅仅是声明一下(可能多了一个功能),因为堆的空间不一定是直接从系统调用获得的,堆的空间是这样管理的:程序先伸请一个大的堆空间,这个时候 ...