PHP 一一 基本语法

1、PHP的基本标识符

基本语法

<?php
	//...PHP代码都写在这个位置
?>

特别注意:

1)以<?php开始 ?>结束

2PHP中的每个代码行都必须以分号结束。分号是一种分隔符,用于把指令集区分开来。

3 )程序设计语言都是从上至下顺序执行的

示例代码:


注意:PHP代码的运行必须通过Apache服务器+PHP解析器,所以其访问都是通过http://localhosthttp://127.0.0.1 进行访问,如下图所示:

2、PHP与HTML的关系

1PHP只存在于服务器端,凡是我们通过浏览器看到的,都是HTML(CSSJavaScript等客户端语言)

2PHP在做网站中的作用就是按照我们的需求输出正确的HTML代码

3)对于PHP而言,所有的HTML代码都是字符串

在demo01_rumen.php的基础上,对hello world进行加粗处理:

3、PHP中的变量

①变量就是 临时 存储数据的容器,浏览器关闭后,变量也会随之消失。

②变量就是在程序运行过程中,可以发生改变的量。

基本语法:

数字键4上面有一个美元符号,shift + 数字4 = $(美元符号)

$变量名称= 变量的值;

提出问题:定义几个变量,用于存储用户名、密码、家庭住址等信息

demo02_bianliang.php 示例代码:


运行结果:

我们发现,当我们输出的字符串中包含中文时,默认会出现乱码,这个时候我们可以添加一个header函数进行处理。


再次运行,结果如下图所示:

4、PHP中变量的命名规则

1)变量名必须以字母或下划线 "_"开头

错误的:$123 = ‘abc’;

正确的:$_123 = ‘abc’;

2)变量名只能包含字母数字字符以及下划线

错误的:$a(b)c

正确的:$abc

3)变量名不能包含空格。如果变量名由多个单词组成,那么应该使用下划线进行分隔(比如 $my_string),或者以大写字母开头(比如$myString)。

错误的:$abc 123

正确的:$abc_123,$myString(驼峰命名法)

5、变量的数据类型

PHP属于一门弱类型语言,定义变量时可以无需指定数据类型,你给它赋予什么类型的值,其就是什么类型。

Java :String c = ‘helloworld’;  //明确指定变量的数据类型

PHP :$c = ‘hello world’;     //赋予什么样类型的值,其变量就是什么类型

 

PHP中的八种数据类型:四种标量类型、两种复合类型、两种特殊类型。

整型       IntegerInt),班级管理系统,与年龄相关信息,192021

浮点型     Float,京东产品管理,与价格的相关信息,43.5039.1062.50

布尔型     Boolean,布尔类型非常简单,真或假,truefalse

字符串     String,用于表示文章标题、描述、内容,都是字符串

数组       ArrayPHP中非常强大的数据类型,新闻列表,产品列表等数据都是放在数组

对象       ObjectPHP面向对象的编程语言

资源       Resource,资源类型,比如验证码,读取文件

空类型     NULL,空类型,置空

使用代码,查看PHP中变量的数据类型?答:可以使用var_dump来查看变量的数据类型

特别说明:

echo echo语句非常简单,但是其只能输出简单类型的数据,四种标量

如:

①echo 10;

②echo 43.50;

③echo true;  true会转化为1,false会转化为0,但是使用echo不输出

④echo ‘hello world’;

demo03_leixing.php 示例代码:四种标量


demo04_leixing.php 示例代码:两种复合类型

demo05_leixing.php 示例代码:两种特殊类型,资源类型|空类型


6、变量的访问范围

什么是变量的访问范围,说白了就是变量在哪里可以使用,在哪里不可以使用。

demo06_fanwei.php 示例代码:


运行结果:直接报错,如下图所示:


这个问题就涉及到PHP中变量的访问范围。

一定要注意:在函数外部就是全局作用域,在函数的内部就是局部作用域,在全局作用域中无法访问局部作用域,反之,在局部作用域中也无法访问全局作用域。

问题:有同学肯定有一个疑问,如果我想在局部作用域里面访问全局变量怎么办呢?

答:可以使用关键词global,在PHP中内置关键字,比如echoglobal不区分大小写

7、编程语言与脚本语言的区别

编程语言主要指的是后端的编程语言,比如ASPPHPJSP,这些语言都需要有服务器的支持,比如IISApacheTomcat,那么这些语言就是编程语言。


脚本语言不需要有服务器的支持,比如HTMLCSSJavaScript,他们都可以直接双击运行,不需要任何服务器的支持,所以他们都是脚本语言。

8、单引号与双引号的区别

在PHP中,一共有8种数据类型,有一种数据类型叫做字符串类型。如何定义字符串呢?

答:在PHP代码中,我们可以通过单引号或双引号来定义一个字符串。


由上图可知,对于普通的数据,单引号和双引号没有任何区别。但是如果单引号中或双引号中出现变量,两者符号就完全不同了。


特别说明:在PHP中,单引号中的变量会直接输出而不解析。但是双引号中的变量,会解析后在输出。

问题:放在双引号中的数据解析快,还是放在单引号中的数据解析快?

答:由于单引号中的变量不解析,直接输出,所以运行速度要略快于双引号。所以在PHP开发中,能用单引号的尽量不要使用双引号。

9、常量

常量是一个简单值的标识符(名字)。如同其名称所暗示的,在脚本执行期间该值不能改变。常量默认为大小写敏感。按照惯例常量标识符总是大写的。

常量名和其它任何PHP 标签遵循同样的命名规则。合法的常量名以字母或下划线开始,后面跟着任何字母,数字或下划线。

基本语法:

define(‘PI’,3.14);

举个例子:比如我们想求圆的面积(πx  r  x  r),π约等于3.14

demo09_changliang.php 示例代码:

10、运算符

1)算术运算符

+  -  *  /   %(取模或取余) ++(加加) --(减减)

$i = 10;

++--放在变量的前面:++$i--$i变量本身先加1或减1,然后在参与运算

++--放在变量的后面:$i++$i--先参与运算,然后变量本身在加1或减1

demo10_suanshu.php 示例代码:

运行结果:41,为什么是41呢?

PHP中,代码都是从上往下,一行一行执行的,所以首先定义$i = 20。然后执行第7行代码$i = $i + $i++又由于$i++的优先级大于+,所以先运算$i++,由于++放在变量的后面,所以先参与运算,结果20。但是$i变量本身要进行+1操作,所以此时$i = 21$i = 21 + 20,最终结果为41

 

2)比较运算符

>  <    >=  <=   ==   ===  !=   !==(不恒等于)

== :只判断两边的值是否相等,不判断变量的数据类型

=== :除了要判断两边的值是否相等,还需要判断两边的数据类型是否相等

3)逻辑运算符


&& :逻辑与,只有两边的条件都成立,结果返回为true。反之则返回为假

|| :逻辑或,只要有一边的条件成立,结果返回为true。反之则返回为假

!:逻辑非,取反的含义,如果表达式为真,返回为假。反之则返回为真

讲个小故事:男多女少,相亲

①女孩子1号② 女孩子2号

女孩子1号,人长的漂亮,白富美。相亲成功的要求,必须要有车而且还要有房。

有车 && 有房,牵手成功

女孩子2号,人长的一般。相亲成功的要求,只要有车或有房。

有车 || 有房,牵手成功

4)字符串运算符(比较特殊,是一个点号.[我是一个点号])

在PHP中,点号代表连接的含义,demo12_lianjie.php 示例代码:


5)赋值运算符

=  +=  -=   *=  /=   %=

PHP中,其他运算符都是从左向右开始运算的。但是赋值运算符比较特殊,就是一个等于号=,它的含义就是把右边的执行结果,赋值给左边。所以其运算顺序是从右向左结合。

比如:$i = 20,$i = $i+2。这么理解,就是首先把数字20赋值给$i。再次执行,$i = $i + 2,相当于先运算$i + 2,结果为22,然后在把22赋值给左边的变量$i。

11、运算符的优先级

小学老师和我们说过:一定要先算乘除后算加减,有括号先算括号里面的。


记住:

++--优先级最高  > *  /  % >  +  -  >  (> <)  >  ==  === >  && ||  !=

12、PHP中的流程结构(选择结构)

1)if...else if...else结构

if(条件){

...代码

} else if(条件) {

    ...代码

} else if(条件) {

    ...代码

} else {

    ...代码

}

2)switch结构

switch(条件) {

    case 条件1:

       ...代码

    break;

case 条件2:

       ...代码

    break;

    default:

       ...代码

}

demo13_if.php 示例代码:


demo14_switch.php 示例代码:


问题:为什么选择结构里既有if结构又有switch结构呢?

对于固定值的判断,两者的效果是一致的。但是switch的执行效率略高。

switch只能进行固定值的判断,而不能判断范围。但是if结构可以进行范围的判断。

13、PHP中的流程结构(循环结构)

①for循环

for($i=0;$i<100;$i++) {

    //循环结构

}

$i = 0 :初始化结构

$i < 100 :每次循环时,系统都会对$i进行判断,是否小于100

$i++ : 可能是++也可能是--,每次循环时,自增或自减

②while循环

while(条件) {

    //循环结构

    $i++或$i--

}

③do...while循环

do {

    //循环结构

} while(条件);  //注意,while后面必须有分号结尾

demo15_xunhuan.php 示例代码:

①使用for循环输出从0到9


②在①的基础上,使用while循环输出从10到1(for循环之后$i=10)


③在②的基础上,使用do...while循环输出从0到9(while循环之后$i=0)


总结循环结构:

什么时候使用for循环,什么时候使用while循环?

对于循环次数已知的情况,比如循环100次,建议使用for循环

对于循环次数未知的情况,比如循环n次,建议使用while循环

while循环与do...while循环的区别?

while循环是先判断后执行

do...while先执行后判断,所以do...while始终要比while多执行1次

14、循环结构中的两大关键词

break :中止整个循环结构(整个循环都结束了)

continue :中止当前循环,继续下一次循环(比如循环100次,50次continue,51次继续执行)

demo16_keyword.php 示例代码:


运行结果:


  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

white camel

感谢支持~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值