PHP-----PHP程序设计基础教程----第二章PHP基本语法

大兔子大兔子 提交于 2020-05-02 11:56:57

博文结构:

2.1 PHP语法风格

2.1.1 PHP标记

  PHP有四种风格的标记,具体如表2-1所示:

  表2-1 PHP开始和结束标记

标记类型

开始标记

结束标记

示例

说明

标准标记

<?php

?>

<?php  echo “Hello”;  ?>

服务器不禁用这种标记,兼容性、可移植性、可复用性好

短标记

<?

?>

<?     echo “Hello”;  ?>

必须在配置文件php.ini中启用short_open_tag选项

ASP式标记

<%

%>

<%     echo “Hello”;  %>

必须在配置文件php.ini中启用asp_tags选项

Script标记

<script language=”php”>

</script>

<script language=”php”>echo “Hello”; </script>

只需了解,PHP不推荐这种标记

  在上述四种标记中,只有标准标记和Script标记能保证对任何配置都有效,而段标记和ASP式标记只能在php.ini中显式的启用。

  注意:

1)若脚本中包含XML语句,避免使用段标记,因为“<?”是XML解析器的一个处理指令。
2)PHP和HTML代码可以进行混合编程。 <html> <body> <p>Hello HTML</p> <p><?php echo "Hello,PHP"; ?></p> </body> </html>
 更常见的用法:
 <?php if($age>18): ?>
    <p>成年人</p>
 <?php else: ?>
    <p>小朋友</p>
 <?php endif ?>
(3)浏览器不识别PHP代码,PHP必须在服务器中执行,双击打开PHP文件是达不到效果的。

2.1.2 PHP注释

  PHP支持C、C++、Shell三种风格的注释。

  ①C++风格注释

    <?php echo "Hello,PHP"; //输出一句话------行注释 ?>  

  ②C风格多行注释

   <?php /* echo "Hello,PHP"; $c=10; 块注释 */ ?> 

  ③Shell风格注释“#”

     <?php echo "Hello,PHP"; #输出一句话------行注释 ?> 

 

2.2 PHP标识符与关键字

2.2.1 标识符

  标识符:变量名、函数名、类名等。

  定义标识符规则:

  ①标识符可以是任意长度,只能由字母、数字、下划线组成;

  ②标识符不能以数字开头;

  ③标识符不能包含空格;

  ④如果标识符由多个单词组成,建议使用下换线分割;

  ⑤标识符区分大小写,不过函数名称例外,不区分大小写;

2.2.2 关键字

  关键字是编程语言里事先定义好并赋予特殊含义的单词,也称保留字。

 

2.3 PHP常量

2.3.1 常量的定义

  脚本执行周期内,值不会发生变化的量,称为常量。相同的值,定义为常量,可以节省存储空间,如运行模式常量,版本常量,路径常量等。

  ①语法1

   bool define(常量名,常量值,$case_insensitive=false) 

  上述声明中,常量名、常量值是必须的,参数$case_insensitive是可选的,用于指定常量名称是否对大小写敏感,如果$case_insensitive=true,表示在调用该常量时,常量名对大小写不敏感,否则表示常量名对大小写敏感。默认情况下$case_insensitive=false。

  ②语法2

   const 常量名=常量值 

  上述声明中,与define定义的常量一样。

  注意:  

/*
     ①使用const方式定义的常量的缺点:低版本不支持;

     ②不能在函数区、流程控制中定义常量;          

     ③按照开发惯例,常量名推荐全部字母大写

     ④常量名前面尽量不要加“$”    
     
     下面通过示例演示常量的定义
*/
<?php
    //定义常量
    define('VERSION',"2.0.0");
    //打印常量
    echo VERSION;
?>

2.3.2 预定义常量

  PHP提供了很多预定义的常量,用以获取PHP中的信息,不允许开发人员随意修改。如表2-2所示:

表2-2 PHP中预定义常量的名称及其作用

常量名

功能描述

__FILE__

默认常量,PHP程序文件名

__LINE__

默认常量,PHP程序中当前行号

PHP_VERSION

内建常量,PHP程序的版本

PHP_OS

内建常量,执行PHP解析器的操作系统的名称

TRUE

该常量是一个真值(true

FALSE

该常量是一个假值(false

NULL

一个null

E_ERROR

该常量指到最近的错误处

E_WARNING

该常量指到最近的警告处

E_PARSE

该常量指到解析语法有潜在问题处

E_NOTICE

该常量为发生不寻常,但不一定是错误处

   示例代码如下:

<?php
    //获取当前文件路径
    echo "当前文件路径是:" . __FILE__;
    //获取当前php的版本号
    echo "当前PHP的版本是" . PHP_VERSION;
    //获取当前操作系统
    echo "当前的操作系统是:" . PHP_OS;
?>

 

2.4 PHP变量

2.4.1 变量的定义

  在PHP中,变量是用一个“$”符号和后面的变量名来声明表示,变量名同样区分大小写,命名规则与标识符相同。同时,因为PHP一种弱语言,不需要显式声明,变量的声明和赋值是同时进行的,即直接将一个值通过“=”赋给变量。

$name="欧阳华夏";
$age=28;
$is_Single=true;
$Info=["欧阳华夏",28,true];

  注意:

/*
变量默认是传值赋值,即将A变量的值赋给B变量时候,整个A的值被赋值到B;变量还有一种赋值方式是引用赋值,表示B变量引用了A变量,如果一个变量的值发生改变,另外一个变量的值随之发生变化。想要实现变量的引用赋值,需要将“&”符号加到要赋值的变量前。
*/
<?php
    $text="Hello";
    $new_text=&$text;
?>

  变量的读取:

  echo的作用是向页面输入字符串

  var_dump()输出复杂类型

  print_r()输出复杂类型

2.4.2 PHP的数据类型

  PHP数据类型共八种,如图2-1所示。标量类型只能存储一个数据,符合类型可以存储一组数据。                                                                                                           

  图2-1 八种数据类型

  1、boolen布尔型

  不仅true/false可以表示boolen值,其他类型的数据也可以表示boolen值。例如:0和非0

  2、integer整型

  可以用十进制、十六进制、八进制或者二进制指定,前面加上“+”和“-”表示正数和负数。

  整型最大值: PHP_INT_MAX 

  3、float浮点型

  不能比较两个浮点数是否相等。

  4、string字符串型

  字符串的定义双引号、单引号都可以。但是二者存在区别。

  ①包含在双引号的字符串会被解析,包含在单引号的字符串不会解析,下面示例对这句话进行说明:

<?php
    $a=9;
    $char1="hello$a";
    $char2='hello$a';
    echo "char1的输出结果是:" . $char1;  //char1的输出结果是:hello9----$a被解析
    echo "<br/>";
    echo "char2的输出结果是:" . $char2;     //char2的输出结果是:hello$a---$a未被解析
?>

  ②对待转义字符不同

  • 单引号字符串
    • 不支持特殊的转义符号,例如 \n
    • 如果要表示一个单引号字符内容,可以通过 \' 表达
    • 如果要表示一个反斜线字符内容,可以通过\\ 表达
  • 双引号字符串
    • 支持转义字符

2.4.3 检测变量的数据类型

  变量的数据类型在赋值时候确定,在PHP中提供了一组is_*()函数,括号中参数为要检测的变量,如果检测的变量符号则返回true,否则返回false。

 表2-3 检测数据类型的相关函数

函数名称

功能描述

函数名称

功能描述

Is_bool(PHP变量)

检测变量是否属于布尔类型

Is_array(PHP变量)

检测变量是否属于数组

Is_string(PHP变量)

检测变量是否属于字符串类型

Is_response(PHP变量)

检测变量是否属于资源

Is_integer(PHP变量)

检测变量是否属于整型

Is_numeric(PHP变量)

检测变量是否属于数组或者数字组成的字符串

Is_null(PHP变量)

检测变量是否属于空值

Is_object(PHP变量)

检测变量是否属于对象类型

Is_float(PHP变量)

检测变量是否属于浮点类型

 

 

  对null值的检测
  为null的几种情况:①变量未赋值;②变量被删除;③变量被赋null;

  empty()判断变量是否为空

  PHP中认为变量的值为:“”,0,“0”,[],null,false时,变量虽然定义了,但无实际意义,为空。

  isset()变量未设置或者设置为NULL时,返回false,其余返回true。变量为空字符串或者0时,此时变量有具体类型,表示已经设置了。

 

2.5 变量类型的转换

2.5.1 自动类型转换

  在PHP中,最常见的自动类型转换情况有三种:转为布尔、转为数值、转为字符串;

  1、转为布尔型

  转为false的情况:

  ①整型值:0

  ②浮点型值:0.0

  ③空字符串:”“

  ④字符串:”0“

  ⑤空数组:[]

  ⑥不包括任何成员变量的对象

  ⑦NULL

  除此之外,其他值会被转为true。

 

  2、转为数值型

  ①纯数字组成的字符串转为相应的数字:”123456“----->123456;

  ②可以转换为浮点型的数字转化为相应的浮点数:”123.456“----->123.456;

  ③以数字开头的字符串转为对应的数字:”123456欧阳华厦“----->123456;

  ④不以数字开头的字符串,包括”true“,转为0:”欧阳华厦123456“----->0;

  ⑤布尔类型值:true--->1;false--->0;

  自动转换不改变原始变量的数据类型,仅改变参与运算的数据的类型。

 

  3、转为字符串

  ①bool类型转换成字符串:true--->"1"     false---->"0";

  ②整型和浮点型转换为字符串:把数字的字面样式转换为string形式。

2.5.2 强制类型转换

  PHP中的强制类型转换非常简单,只需要在变量前加一个小括号,并把目标类型填写在括号中实现。表2-4列举了强制转换的类型。

  表2.4 强制转换类型

函数名称

功能描述

函数名称

功能描述

boolen

强转为布尔型

(float)

强转为浮点型

(string)

强转为字符串型

(array)

强转为数组

(integer)

强转为整型

(object)

强转为对象

 

 2.6 PHP运算符

 2.6.1 算数运算符

   见表2-5:

  表2-5 算数运算符

运算符

运算

范例

结果

+

正号

+3

3

-

负号

-2

-2

+

5+5

10

-

6-4

2

*

3*4

12

/

5/5

1

%

取模

7%5

  有浮点数参与运算的时候,计算结果的数据类型总是浮点型;当整数与整数运算的结果是小数时,其数据类型也是浮点型。

  在进行取模运算的时候,运算结果的正负取决于被模数(%左边的数)的符号,与模数(%右边的数)的符号无关。如(-5)%3=-2,而5%(-3)=2.

2.6.2 赋值运算符

  见表2-6:

  表2-6 赋值运算符

运算符

运算

范例

结果

=

赋值

$a=3;$b=2;

$a=3;$b=2;

+=

加等于

$a=3;$b=2;$a+=$b;

$a=5;$b=2;

-=

减等于

$a=3;$b=2;$a-=$b;

$a=1;$b=2;

*=

乘等于

$a=3;$b=2$a*=$b;

$a=6;$b=2;

/=

除等于

$a=3;$b=2;$a/=$b;

$a=1.5;$b=2;

%=

模等于

$a=3;$b=2;$a%=$b;

$a=1;$b=2;

.=

连接等于

$a=’abc’;$a.=’def’;

$a=’abcdef’;

   赋值运算符的作用将右侧表达式结果(从右侧到左侧计算)赋值给左侧变量;

  ①在PHP语言中可以通过一条赋值语句对多个变量进行赋值; $a=$b=$c=10; 

  ②在表2-7中,除了“=”,其余都是特殊的赋值运算符;

  ③“.=”表示对两个字符串进行连接操作,生成一个新的字符串并赋值给变量,它又被称为字符串运算符;

2.6.3 递增递减运算符

  见表2-7:

  表2-7 递增递减运算符

运算符

运算

范例

结果

++

自增(前)

$a=2;$b=++$a;

$a=3;$b=3;

--

自减(前)

$a=2;$b=--$a;

$a=1;$b=1;

++

自增(后)

$a=2;$b=$a++;

$a=3;$b=2;

--

自减(后)

$a=2;$b=$a--;

$a=1;$b=2;

   递增递减字符: 

<?php
    $x='a';
    echo --$x . "<br/>";    //输出为a
    echo ++$x . "<br/>";    //输出为b
    $x='z';
    echo ++$x . "<br/>";    //输出为aa
    $x='Z';
    echo ++$x . "<br/>";    //输出为AA
    $x='abcd';
    echo ++$x . "<br/>";    //输出为abce
?>

  ①在PHP语言中,只支持纯字母(a~z和A~Z)的递增运算;在PHP中对字符进行递减操作时,该操作无效,且操作数的值不变。

  ②当对字符z和Z进行递增操作时,字符会向前进一位,变成aa后者AA;

  ③对多个字母组成的字符串进行递增操作时,会针对字符串末尾的单个字符进行递增操作。

  递增递减布尔值或者NULL:

  ①当操作数是布尔类型时,递增递减操作对其值不产生影响;

  ②当操作数为null时,递增的结果是1,递减不受印象。

2.6.4 比较运算符

  见表2-8:

   表2-8 比较运算符

运算符

运算

范例($x=5)

结果

==

等于

$x ==4;

false

!=

不等于

$x!=4;

true

<>

不等于

$x<>4;

true

===

恒等

$x===5;

true

!==

不恒等

$x!==’5’;

true

>

大于

$x>5;

false

>=

大于或者等于

$x>=5;

true

<

小于

$x<5;

false

<=

小于或者等于

$x<=5;

true

  ①“===”和“!==”比较少见,当$x===$y为true,表示x,y不止数值相等,二者类型也相等,当$x!==$y 为true时,要么数值不相等,要么数据类型不相等;

  ②在程序中,如果参与比较运算的操作数中含数字类型的数据时,则在比较的过程中,会将所有的操作数转为数值,然后按照数值进行比较;

2.6.5 逻辑运算符

  见表2-9:

  表2-9 逻辑运算符

  

运算符

运算

范例

结果

&&

$a && $b;

$a$b都为true,结果为true,否则为false

||

$a || $b;

$a$b中至少又一个为true,结果为true,否则为false

!

! $a;

$afalse,结果为true,否则相反

xor

异或

$a xor $b;

$a$b的值一个为true,一个为false时,结果为true,否则为false

and

$a and $b;

&&相同,但优先级较低

or

$a or $b;

||相同,但优先级较低

 

 2.7 流程控制语句

2.7.1 选择控制语句 

  ①if

  ②if......else

  ③if......elseif......else

  ④switch......case

  注意:

/*
①if语句中只包含一条语句时,它的大括号是可以省略的。
②使用switch语句过的过程中,如果多个case条件后面的执行语句是一样的,    
   则该执行语句只需书写一次即可。
③在PHP中,switch语句中的break也可以使用continue代替,作用基本相同。
④在第一个case匹配成功后,没有碰到break语句,会不进行匹配直接执行其后所有case中的语句段,直到switch语句的最后一行或者碰到break语句。
*/

2.7.2 循环语句结构

  ①while

  ②do......while

  ③for

  ④foreach(专门用来遍历数组)

2.7.3 跳转语句

  跳转语句用于实现循环执行过程中程序流程的跳转,在PHP中的跳转语句有break语句、continue语句和goto语句,同时本段再介绍三个函数die\exit\sleep

  1、break语句

  ①当break出现在switch条件语句中时,作用是终止某个case并跳出switch结构;

  ②当break出现在循环语句中时,作用是跳出当前循环,执行后面的代码;

  ③break可以接受一个数字参数决定跳出几重循环;

  

  2、cintinue语句

  终止本次循环,执行下一次循环

 

  3、goto语句

  ①goto语句的作用是跳转到程序的另一位置。在目标位置用目标名称加上冒号来标记,跳转语句是goto之后加上目标位置的语句;

  ②goto语句仅在PHP5.3及以上版本有效;

  ③goto语句只能在同一个文件或则作用域中跳转,也就是说无法跳出一个函数或者类方法,也无法跳入另一个函数。

<?php
    for($i=1,$j=10;$i<20;$i++){
        while($j--){
            if($j==5) goto end;
        }
    }
    
    echo '$i=' . $i;  //不执行
    end:
    echo '$i=' . $i . '  $j=' . $j;  //$i=1 $j=5
?>

  4、die / exit

  退出代码执行,当前位置之后的所有代码不执行,相当于return,可以用来进行程序运行控制,可以在出错的时候执行此语句,退出代码的执行;

  exit可以在退出时候输出变量值,完成函数的执行; exit('结果为:' . $res); //输出 结果为:$res  

  5、sleep

  休眠函数,执行到sleep(秒数)所在语句时,延缓一定的秒数,继续执行,可以查看一些临时数据。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!