2019-03-11 PHP学习笔记之PHP的基本语法(2)

参考资料:《细说PHP》、《PHP、MySQL与JavaScript学习手册》

变量的类型

变量类型指保存在该变量中的数据类型。PHP是一种弱类型检查的语言,这意味着变量在使用前可以不被声明,PHP总是在访问变量时根据它们的内容将变量转换为相应的类型,具体什么类型由存放的内容决定。

类型介绍

PHP支持八种数据类型:

  • 4种标量类型
    1. 布尔型(boolean)
    2. 整型(integer)
    3. 浮点型(float, double)
    4. 字符串(string)
  • 2种复合类型
    1. 数组(array)
    2. 对象(object)
  • 2种特殊类型
    1. 资源(resource)
    2. NULL

如果想查看某个表达式的值和类型,可以使用函数var_dump()

布尔型

布尔型表达了“真”或“假”,在进行关系运算和布尔运算时,返回的都是布尔结果。

在PHP中布尔类型不只是有TRUE和FALSE两种结果。当需要一个布尔参数时,所有的值在PHP中都会自动转换成布尔类型的值。

在转换时,以下将被认为是FALSE,所有其他值都被认为是TRUE:

  • 布尔值FALSE
  • 整型值0
  • 浮点型值0.0
  • 空白字符串和字符串“0”
  • 没有成员变量的数组
  • 没有单元的对象(仅PHP4)
  • 特殊类型NULL
  • 尚未设定的变量

整型

整型变量用于存储整数。

整型变量不仅是在数据前加上可选的符号+或-表示正负数,也不仅有十进制数,还可以用十六进制(数字前必须加0x)和八进制数(数字前必须加0)来表示。

注意:PHP不支持无符号整数。如果一个数超过了整型的范围,将会被解释为float型,如果结果超出了整型的范围,也会返回float型。

浮点型

浮点数是含小数部分的数,通常用来表示整数无法表示的数据。

注意:浮点数只是一种近似的数值,所以浮点数的结果并没有精确到最后一位。如果确实需要更高的精度,应该使用任意精度数学函数或者gmp()函数。

字符串

字符串是一系列字符。在PHP中,字符和字节是一样的。

字符串可以使用单引号双引号定界符三种字面上的方法来定义。

单引号

指定一个字符串最简单的方法是用单引号括起来。在单引号中不能再包含单引号,否则会有错误发生。如果确实需要包含,需要使用反斜线\来转义。

在单引号字符串中出现的变量不会被变量的值替代,也就是说,PHP不会解析单引号中的变量,而是将变量名原样输出。

因此,如果没有特别的需求,应该使用单引号定义字符串。

双引号

双引号字符串最重要的一点就是其中的变量名会被变量值所替代,也就是说,可以解析双引号中的包含变量。

如果是复杂的语法,可以使用花括号括起一个表达式。例如:

例1 使用花括号括起一个表达式

<?php
    $beer = 'Heineken';
    //不可以解析变量$beer,因为s在变量名中是有效的
    echo "He drank some $beers";
    //可以解析变量
    echo "He drank some ${beer}s";
    //可以解析变量
    echo "He drank some {$beer}s";
?>

定界符

给字符串定界还可以使用定界符"<<<"

应该在定界符之后提供一个标识符开始,然后是包含的字符串,最后是同样的标识符结束字符串。结束标识符必须从行的第一列开始,并且后面除了分号以外不能包含其他任何字符。

定界标记使用的标识符也必须遵循PHP中其他任何标签的命名规则。

注意:结束标识符所在的行不能包含任何其他字符,这意味着该标识符不能被缩进。在结束标识符前的第一个字符必须是操作系统中定义的换行符。

例2 使用定界符

<?php
    $string = <<<EOT
    这是包含在定界符中的字符串。
EOT;
    echo $string;
?>

注意:定界符不能初始化类的成员,其余与双引号相同。

数组

数组是PHP中一种重要的复合数据类型。

数组可以存放多个数据,并且可以存放任何类型的数据。

PHP中,可以使用多种方法构造一个数组。这里使用array()语言结构构造一个新的数组,它接受一定数量用逗号分隔的key=>value对。

例 3 定义一个数组

<?php
    $arr = array("foo"=>"bar", 12=>true);
?>

对象

对象和数组都是一种复合数据类型。

一个对象类型的变量,是由一组属性值和一组方法构成的,其中属性表明对象的一种状态,方法通常用来表明对象的功能。

要初始化一个对象,使用new语句将对象实例化到一个变量中。

资源类型

资源是一种特殊类型的变量,保存了到外部资源的一个引用。资源是通过专门的函数来建立和使用的。

NULL类型

NULL值表示一个变量没有值,NULL类型唯一可用的值就是NULL。

在下列情况下一个变量将被认为是NULL:

  • 将变量赋值为NULL
  • 声明的变量尚未被赋值
  • 被unset()销毁的变量

伪类型

伪类型并不是基本的数据类型,而是因为由于PHP是弱类型语言,所以在一些函数中,一个参数可以接受多种类型的数据,还可以接受别的函数作为回调函数的使用。

常用的伪类型如下:

  • mixed:一个参数可以接受多种不同的类型。
  • number:一个参数可以是integer和float。
  • callback:有些函数接受用户自定义的函数方法作为一个参数。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,490评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,581评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,830评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,957评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,974评论 6 393
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,754评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,464评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,357评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,847评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,995评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,137评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,819评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,482评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,023评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,149评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,409评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,086评论 2 355

推荐阅读更多精彩内容

  • 1.认识php php是服务端嵌入到HTML中的脚本语言。php的功能包括但不限于: 收集表单数据 生成动态网页 ...
    楠哥哥_0b86阅读 847评论 3 1
  • 一、php可以做什么 php是一种可以在服务器端运行的编程语言,可以运行在Web服务器端。 php是一门后台编程语...
    空谷悠阅读 3,098评论 4 97
  • 参考资料:PHP5 权威编程 变量 定义:$变量名 = 值; 例如:$demo = 1; 变量的基...
    _1633_阅读 1,678评论 1 4
  • php可以做什么 php是一种可以在服务器端运行的编程语言,可以运行在Web服务器端。 php是一门后台编程语言,...
    dptms阅读 1,915评论 1 15
  • 在中文的网络上出现率很高的COCA、COHA、BYU-BNC之类的语料库其实都是杨百翰大学(Brigham You...
    易渔_阅读 8,105评论 0 2