zoukankan      html  css  js  c++  java
  • php基础语法

    1. 定界符<?php?>

      PHP里面,把PHP代码包含在定界符里面,

      当解析一个文件时,PHP 会寻找起始和结束标记,也就是 <?php?>,这告诉 PHP 开始和停止解析二者之间的代码。此种解析方式使得 PHP 可以被嵌入到各种不同的文档中去,而任何起始和结束标记之外的部分都会被 PHP 解析器忽略。

      定界符的作用:告诉PHP引擎定界符里面的是PHP代码。凡是在一对开始和结束定界符之外的内容会被PHP解析器忽略。大多数情况下PHP都是嵌入在HTML文档中的。

      例如:

      效果:不会被PHP引擎解析,直接原样输入

    2. PHP代码的位置

    可以在一个html文档里面的任意位置嵌入PHP代码,只需要写上定界符,开启PHP模式即可。

    如下:我们在一个php文档中的html代码中任意位置嵌入PHP代码

    1.  效果:

      这里有一个很重要的细节,客户端无法观察到具体的PHP代码,因为PHP引擎已经将PHP代码转换为了html,所以客户端看到的只是简单的html代码。

      1.您无法在浏览器中通过查看源文档的方式来查看 PHP 的源代码 -

      只能看到 PHP 文件的输出,即纯粹的 HTML。这是因为在结果返回浏览器之前,

      脚本就已经在服务器执行了。

      如下:

    3.PHP定界符风格

    在PHP中一共有4种风格,分别是标准类型,短标记,ASP式标记和Script式标记

    ①标准类型:<?php和?>

    这是官方推荐的风格,如果没有特殊要求,就使用这个风格

    短标记:<??>

    偶尔会被禁止,因为可能和其他文件产生冲突

    如果要打开,需要在php.ini里面的short_open_tag里面打开注释

    ③ASP式标记:<%%>

    这是为了迎合ASP或者ASP.Net的开发人员的编程习惯,如果要使用,也需要在php.ini中打开注释

    如下:

    ④Script式标记:<script  language="php"></script>

    这种风格默认可用,但是不常用

    总结:虽然介绍了这么多,但是没什么事儿的话就用标准

    4.PHP里面的注释

    PHP里面支持3种风格的注释,CC++UNIX shell

    shell风格是以一个#

    C++风格:是以//来进行注释

    C风格:是以/**/来进行注释

    指令分隔符

    C Perl 一样,PHP 需要在每个语句后用分号结束指令。一段 PHP 代码中的结束标记隐含表示了一个分号;在一个 PHP 代码段中的最后一行可以不用分号结束。如果后面还有新行,则代码段的结束标记包含了行结束。

    <?php
         echo  "This is a test" ;
    ?>
    
    <?php  echo  "This is a test"  ?>
    
    <?php  echo  'We omitted the last closing tag' ; 

    Note:

    文件末尾的 PHP 代码段结束标记可以不要,有些情况下当使用 include或者require时省略掉会更好些,这样不期望的空白符就不会出现在文件末尾,之后仍然可以输出响应标头。在使用输出缓冲时也很便利,就不会看到由包含文件生成的不期望的空白符。

    1. 变量

    ①声明变量

    我们的PHP解释性语言,由于是弱类型语言,所以变量的类型不用提前定死,和Javascript是一样的,你赋予什么值,它就是什么类型

    PHP里面,声明一个变量,使用$符号来声明一个变量,如下:

    如果是全局变量,则在多个PHP代码段都可以使用

    如下:

    这里介绍3个函数

    unset():将一个变量置空

    isset():检测一个变量是否被设置

    empty():检测一个变量是否为空

    isset()empty()的区别:

    isset():如果设置了,返回true,否则返回false

    empty():如果是空,则为true,否则的话为false

    什么时候被当作empty

    若变量存在且其值为""0"0"NULLFALSEarray()var $var、 以及没有任何属性的对象,则返回 TURE

    ②变量的命名

    规则如下:

    1. $开头

    2. 后面由数字,字母,下划线组成,但是不能以数字开头

    3. 不能是关键字

    4. 驼峰命名法,望文知意(软性要求)

    PHP里面由于支持utf8编码格式,所以变量名都可以用中文,但是,禁止使用!!!!

    变量名区分大小写,但是在PHP里面函数名,用户定义的类和内置的关键字等是不区分大小写。

    Note: $this是一个特殊的变量,它不能被赋值。

    ③ 可变变量

    所谓可变变量,就是变量名的值可以动态的设置为另一个的变量的变量值

    将一个变量的值作为变量名,并赋新值

    ④ 引用赋值

    所谓引用赋值,就是将一个变量的地址赋值给另外一个变量,但是和C语言不同的是,当我们输出被引用赋值的变量的时候,不会打印出里面存储的地址,而会输出通过地址找到的变量值。

    C语言中会输出&$i;

    PHP里面变量类型介绍

    PHP里面支持8种原始数据类型(4种标准类型,2种复合类型,2种特殊类型

    首先介绍一个函数:

    var_dump():作用就是查看某一个变量是什么数据类型

    效果:打印输出各个变量的值和数据类型,如果是字符串或数组还会分别计算size值和length值,

    (1)Boolean类型

    和其他语言一样,就两个值,一个是TRUE,一个是FALSE

    除了FALSE以外,以下变量值也会被当成FALSE

    布尔值FALSE本身

    整型值0

    浮点型0.0 以及空字符串””以及字符串”0”

    - 不包含任何元素的数组

    - 不包含任何成员变量的对象

    特殊类型NULL

    (2) int 整型

    JavaScript里面一样,可以使用十进制,八进制,十六进制,甚至还支持二进制

    无论是几进制,最终输出都以十进制输出

    PHP里面,不支持无符号整数,支持有符号整数

    我们可以通过is_int()函数来检测一个变量是否为整型,返回值为true或者false,如下:

    效果:因为是一个整型变量,所以输出了”这是一个整数”

    还有一个知识点,就是关于整型数据类型的取值范围

    一般来讲,整型数据类型的取值范围为-231~231-12147483647

    当一个变量的值超出int的取值范围的话,自动被转为float类型

    (3) 浮点型

    PHP里面浮点数有两种表示方式方法,

    第一种就是普通小数表示方式,

    还有一种就是科学计数法

    PHP里面浮点数精确到14位,这个精度的计算是从最左边开始,第一个0的数就是精度的开始,精度开始后的第15位数按照四舍五入的原则向前进1

    浮点数只是一个数的近似表示,并不能存储准确的值

    例如:由于浮点数不能精确存储,所以会出现类似于以下的情况

    (不要向下面的例子一样命名变量!!!)

    和整型一样,也存在is_float()函数来判断一个变量是否是一个浮点数。

    (4) 字符串

    C语言没有String类型,声明字符串需要声明一个字符串数组

    字符串的表示方法:三种‘’、“”、<<<自定义变量  内容  自定义变量;

    字符串就是任意长度的字符序列。在PHP里面字符串可以用单引号或者双引号来分隔。在PHP中,单引号和双引号的字符串是有区别的:

    如下:单引号里面的变量不会被解析,但是双引号里面的变量会被解析。

    如果只是一个普通的字符串,那么建议使用单引号,因为这样的效率比双引号更高。如下:

    如果是放在双引号里面需要解析的变量,我们一般会加上一对{}来突显出这是一个变量

    双引号里面支持多种字符转义

    例如:当我们想要使用普通的双引号的时候,用一个进行转义即可

    转义字符代码

    转义字符的含义

    双引号

    单引号

    \

    反斜杠

    换行符

    回车符

    制表符

    $

    美元符号

    接下来就是单引号支持的转义字符,大多数都是不支持的,但是也不是说完全不支持,只支持两个:单引号和反斜杠

    和前面同样,有一个is_string()函数可以判断一个变量是否为字符串,如果是返回TRUE,否则返回FALSE

    定义字符串还有一种方法,通过定界符语法<<<标识符

    语法:  变量名 = <<<标识符

    字符串内容

    标识符;

    如下:

    这种方法一般用于大量的字符串的时候

    (5) 数组

    数组就是拿来存储多个数据的,在PHP里面,数组可以放入任意类型数据,

    通过var_dump(),我们同样可以查看数组的类型,如下:

    (6) 对象

    后面学习面向对象知识的时候会具体介绍

    ->表示指向

    (7) 资源类型

    资源类型其实是保存了外部资源的一个引用。

    (8)Null类型

    该类型只有一个值,表示一个变量没有值

    3种方法让一个变量成为null

    1. 直接给变量赋值为null
    2. Unset()函数销毁一个变量
    3. 声明一个变量,但是不赋值

    (9) 伪类型

    Mixednumbercallback

    3个不是PHP里面的标准数据类型,这3个代表的意思依次如下:

    Mixed:代表一个参数可以接受多种不同类型

    Number:说明一个参数可以是int也可以是float

    Callback:说明参数可以是一个用户自定义的函数

    1. 数据类型之间的相互转换

    ①  自动类型转换

    自动转换通常在不同的数据类型之间进行混合运算的时候,会先将其转换为同一类型,然后进行运算。

    自动类型转换:转换为布尔型,转换为整形,转换为浮点型,转换为字符串型

    转换为布尔型:

    除了FALSE以外,以下变量值也会被当成FALSE

    布尔值FALSE本身

    整型值0

    浮点型0.0 以及空字符串””以及字符串”0”

    - 不包含任何元素的数组

    - 不包含任何成员变量的对象

    特殊类型NULL

    转换为整型:

    布尔型转整型:TRUE转换为1FALSE转换为0

    浮点型转换为整型:向下取整(直接舍去小数部分)

    字符串型转整型:取决于开始的部分,如果字符串以合法的数值开头,则使用该数值,否则转换为0

    转换为字符串型:

    布尔型转字符串型:布尔值TRUE会转换为”1”FALSE会转换为””

    整型或者浮点型转换为字符串型:就是将数字的字面值转换为string类型

    例如:

    3  “3”

    3.14 “3.14”

    ②  强制类型转换

    就和以前在C语言里面是一样,将要转换的数据类型写在一个小括号里面

    如下:

    这里顺便介绍两个函数

    Strval():获取变量的字符串值,stravlstring  value 的简写)

    settype():作用就是设置变量的数据类型

    接收两个参数  settype(变量,“数据类型”);

    类型转换的一些细节:(总结)

    1. 整数转为浮点型的时候,由于浮点型的精度要比整型大,所以转换后的精度不变
    2. 浮点型转换为整型的时候,小数部分自动舍去
    3. 如果一个浮点数转换为整型,取值范围超过了整型,那么结果将会是不确定的。
    4. 字符串转换为数字的时候,取字符串开始部分的数值,开始部分的数值也包括科学计数法。如果没有数值就为0
    5. Null转换为字符串的话,将会转换为空字符串””

    7.常量

    常量一般就是一些固定的值,

    例如数学里面的PI3.1415926… 对于这种固定的值,我们就可以将其定义为常量

    常量的作用域是全局的,可以在脚本的任何位置访问和使用

    ①  常量的定义

    PHP里面,通过define()函数来定义一个常量

    语法:

    Define(“常量名”,常量值,[true/false]);

    如下:

    如果第3个参数设置为true,则代表不区分大小写

    默认是FALSE

    ②使用const关键字赋值  

    语法 const  PI=3.14; echo PI;//3.14

    关于常量一些其他知识总结:

    1. 常量前面没有$符号
    2. 常量可define()函数来定义,还能通过赋值语句 const关键字进行赋值
    3. 常量可以不用理会变量的作用域,可以在脚本的任意位置访问到
    4. 常量值得类型只能是标准数据类型booleanintfloatstring

    8.系统中预定义的常量

    PHP里面提供了一套系统定义好了的常量

    如下表:

    常量名

    常量值

    说明

    PHP_OS

    一般值为unix或者winnt

    执行php解析的操作系统的名称

    PHP_VERSION

    5.4.16

    当前PHP服务器的版本

    TRUE

    代表布尔值真

    FALSE

    代表布尔值假

    NULL

    代表空值

    M_PI

    3.1415926535898

    圆周率

    E_ERROR

    1

    错误,导致PHP脚本运行终止

    E_WARNING

    2

    警告

    E_PARSE

    4

    解析错误

    E_NOTICE

    8

    提示,非关键错误,例如申明了一个变量但是没有赋值

    如下:

    9.PHP中的魔术常量

    所谓魔术常量,就是指常量的值不是固定的,会根据不同的环境而发生改变

    魔术常量名以两个下划线开始,两个下划线结束

    常量名

    常量值

    __FILE__

    当前文件名

    __LINE__

    当前行数

    __FUNCTION__

    当前函数

    __CLASS__

    当前类名

    __METHOD__

    当前对象方法

    效果:

    10.PHP里面的运算符

    ①  算数运算符

    加法,减法,乘法,除法,求模,算数符号,算数断言

    注意一下除法,例如5 / 2将会得到2.5

    算数断言:就是在操作数的前面加一个+

    一元运算符的自增和自减

    ++  --

    分为两种:a++++a

    PHP里面的自增有独特的地方,在PHP里面,不仅可以对数字进行自增,还可以对字符串进行自增(注意只有递增,没有递减)

    如果是字母,可以像算数运算一样往前进位

    自动递增

    得到结果

    “a”

    “b”

    “z”

    “aa”

    “spaz”

    “spba”

    “a9”

    “b0”

    ②  字符串运算符

    只有一个知识点,就是字符串的拼接,在PHP里面,通过一个”.”来进行字符串的拼接

    字符串类型非常霸道,和任何标量数据相连接的话,合并成新的字符串类型

    ③  赋值运算符

    基本操作符就是一个 =

    除此之外,还有其他的一套:

    符号

    +=

    -=

    /=

    *=

    %=

    ^=

    &=

    |=

    .=

    ④  比较运算符

    相等,全等,不等,不全等,大于,小于,大于等于,小于等于

    ⑤ 逻辑运算符

    逻辑运算符有4个:逻辑与,逻辑或,逻辑非,逻辑异或

    逻辑异或:^

    作用:两个变量不相同返回真,相同返回假

    php里面,&&,||可以使用and和or来表示,但是实际开发中一般还是符号用得多一些

    逻辑运算符同样存在短路现象

    判断正确就不会进行下一个条件判断

    对于&&,如果第一个操作数为FALSE,那么不会去计算第二个操作数的结果,直接返回FALSE

    对于||,如果第一个操作数是true,那么不会去计算第二个操作数,直接返回true。

    ⑥  位运算符(用得不多)

    位运算符主要作用于二进制的操作数上面,所以当使用位运算符的时候,所有操作数首先需要转换为二进制数

    按位非,左移,右移,按位与,按位异或,按位或

    按位非:~  取反

    $A    ~   $A

    0        1

    1        0

    按位与:& 两者都为1的时候为1,否则为0

    $A          $B            $A & $B

    0            0               0

             0            1               0

             1            0               0

             1            1               1

    按位或:|  只要有一位为1,则为1,否则为0

    $A           $B            $A | $B

    0             0               0

             1             0               1

             0             1               1

             1             1               1

    按位异或:^ 二者不同为1,相同为0

    $A            $B           $A ^ $B

             1             0               1

             0             1               1

             1             1               0

             0             0               0

    练习:

    $a & $b

    $a   0000  1100

    $b   0000  0011

         0000  0000 = 0

    $a ^ $b

    $a   0000  1100

    $b   0000  0011

         0000 1111 = 15

    $a | $b

    $a   0000  1100

    $b   0000  0011

         0000   1111 = 15

    $a << $b

    $a   0000  1100   

         0110  0000  = 96

    这个位运算有什么作用:在进行固定的运算的时候,效率相当之高,左移一位就相当于是乘以2,右移一位相当于除以2

    ⑦  其他运算符

    1. 错误屏蔽运算符:@

    有些时候当我们书写php代码的时候,可能会出现一些警告,这个错误屏蔽运算符@就是用来屏蔽这些警告

    1. 三元运算符

    又被称作三目运算符   ?:

    例如  A?B:C

    A>b?max(a):min(b);

    1. Instanceof:测试一个对象是否是一个类的实例化
    2. 对象成员访问符:->

    ⑧  运算符的优先级

    PHP运算符的优先级具体如下表:

     

    除了上面的优先级以外,我们可以通过一对小括号来改变优先级

    11.表达式

    所谓表达式,就是任何一个可以得到值的式子,就可以被称之为表达式。

  • 相关阅读:
    smarty对网页性能的影响
    php-fpm正在生成页面时,浏览器刷新后,php-fpm会退出吗?
    为什么日志记录到别的目录了?
    一个空格引发的bug
    linux内核--页高速缓存
    radix树
    linux内核--用户态内存管理
    linux内核--内核内存管理
    linux内核--软中断与tasklet
    linux内核--几个上下文(context)
  • 原文地址:https://www.cnblogs.com/chenduzizhong/p/7355201.html
Copyright © 2011-2022 走看看