专栏首页代码审计PHP入门之类型与运算符

PHP入门之类型与运算符

前言

PHP对于大部分人来说,是比较容易入门的。笔者也是刚学习不久,所以就把自己学习的基础知识进行总结和整理。第一部分是类型与运算符。如果你想学习PHP,可以参考PHP学习手册学习,任何一本教学资料也没有PHP学习手册讲的详细。下载地址:PHP学习手册

类型

PHP支持8种原始类型,包括boolean(布尔型)、integer(整型)、float(浮点型,也称作 double)、string(字符串)、array(数组)、object(对象)、resource(资源)、NULL(无类型),还有三种伪类型。这里主要讲解前四种标量类型。PHP不用提前定义数据类型,它会自己识别。

整型

整型数的字长和平台有关,尽管通常最大值是大约二十亿(32 位有符号)。64 位平台下的最大值通常是大约 9E18。PHP 不支持无符号整数。Integer 值的字长可以用常量 PHP_INT_SIZE来表示,自 PHP 4.4.0 和 PHP 5.0.5后,最大值可以用常量 PHP_INT_MAX 来表示。可以用下面的代码证明一下。

<?php
$a=12345;
echo "a的值为".$a;
echo '</br>';
echo "字节为".PHP_INT_SIZE;
echo '</br>';
echo "最大值为".PHP_INT_MAX;
echo '</br>';
echo var_dump($a);
?>

运行结果为:

如果给定的一个整数,溢出了整数的范围,将直接会解释成float。

布尔型

布尔型细节 最简单的类型,true和false代表真和假。 当转换为 布尔 时,以下值被认为是 false: • 布尔值 false 本身 • 整型值 0(零) • 浮点型值 0.0(零) • 空字符串,以及字符串 "0" • 不包括任何元素的数组 • 不包括任何成员变量的对象(仅 PHP 4.0 适用) • 特殊类型 NULL(包括尚未赋值的变量) • 从空标记生成的 SimpleXML 对象 除了上面那些,其他的所有值都会被认为是true。

浮点型

精度为14个字节,从左边不是零的一个开始算起。 比如、 $a=0.123444555666666666; echo "a的值为".$a; 输出的值为:a的值为0.12344455566667 当到第14位数时,它会自动四舍五入。

字符型

字符型最大可以达到 2GB。 需要注意的一点是区分单引号和双引号。用双引号定义的字符串最重要的特征是变量会被解析。举个例子。

$b=123;
echo "hello$b";
echo 'hello$b';     #结果为 hello123  hello$b

运算符

运算符是可以通过给出的一或多个值(用编程行话来说,表达式)来产生另一个值(因而整个结构成为一个表达式)的东西。下面对几种常用的运算符进行详细说明。

递增/递减运算符

举个例子

$i=10;
$i=++$i;    # ++在前,先++然后在赋值。所以输出的结果为11.
$i=i++;    # ++在后,先赋值,然后在++。所以输出的值为10.  //这里注意的是,++和--的对象是变量!!比如$a=++3就是错的!!
echo 'i的值为'.$i

--i和i--同样的道理。

算术运算符

a + b 加法 a 和 b 的和。 a - b 减法 a 和 b 的差。 a * b 乘法 a 和 b 的积。 a / b 除法 a 除以 b 的商。 a % b 取模 a 除以 b 的余数。 这些就不举例子了。还有a+、a-、a*、a/、

$a=10;
$a-=2;
echo 'a的值为'.$a;  #执行结果为:a的值为8  $a-=2就相当于$a=10-2;

比较运算符

a == b 等于 TRUE,如果类型转换后 a 等于 b。 a === b 全等 TRUE,如果 a 等于 b,并且它们的类型也相同。 a != b 不等 TRUE,如果类型转换后 a 不等于 b。 a <> a 不等于 b。 a !== b 不全等 TRUE,如果 a 不等于 b,或者它们的类型不同。 a < a 严格小于 b。 a > a 严格大于 b。 a <= a 小于或者等于 b。 a >= a 大于或者等于 b。 a <=> a小于、等于、大于than b时分别返回一个小于、等于、大于0的integer 值。 PHP7开始提供. a ?? b ??

逻辑运算符

  • a and b And(逻辑与) TRUE,如果 a 和 b 都为 TRUE。
  • a or b Or(逻辑或) TRUE,如果 a 或 b 任一为 TRUE。
  • a xor b Xor(逻辑异或) TRUE,如果 a 或 b 任一为 TRUE,但不同时是。
  • ! a Not(逻辑非) TRUE,如果 a 不为 TRUE。
  • a && a 和 b 都为 TRUE。
  • a || b Or(逻辑或) TRUE,如果 a 或 b 任一为 TRUE。 and 和 &&都是逻辑与,区别是&&优先级高于and,and的优先级比赋值运算符还要低。 举个例子。
$a= false&&true;
$b= true and false;
var_dump($a,$b);              #执行结果:bool(false) bool(true) $a=false$b=true
if ($a==false){               #因为,and的优先级低于“=”所以$b先进行了赋值。
    echo '$a=false';     
}
if ($b==true){
    echo '$b=true';
}

||和or都是逻辑或,区别是||优先级高于or,or的优先级比赋值运算符还要低。 举个例子。

$a= true||false;
$b= false or true;
var_dump($a,$b);              #执行结果:bool(true) bool(false) $a=true$b=false
if ($a==true){                #因为,or的优先级低于“=”所以$b先进行了赋值。
echo '$a=true';
}
if ($b==false){
    echo '$b=false';
}

字符串运算符

有两个字符串(string)运算符。第一个是连接运算符("."),它返回其左右参数连接后的字符串。第二个是连接赋值运算符(".="),它将右边参数附加到左边的参数之后。 举个例子。

$a = "Hello ";         #执行结果为 Hello World!
$b = $a . "World!"; 
echo "$b";
$a = "Hello ";
$a .= "World!";       #执行结果为 Hello World!
echo "$a";  

这里不仅可以连接字符串,如果是数字的话也会当作字符串去连接。 比如 a=123;b=456;echo a.b; 结果为:123456

三元运算符

格式:表达式1?表达式2:表达式3 含义:如果表达式1为真,执行表达式2,如果表达式1为假,则执行表达式3。 举个例子:

$a=2;
$b=3;
$c=$a<$b?"b大于a":"a大于b";
echo '$a='.$a,'<br/>','$b='.$b,'<br/>',$c;  #表达式2和表达式3可以是数,也可以是字符串,也可以是一个式子。

输出结果为: a=2b=3 b大于a

类型运算符

instanceof 用于确定一个 PHP 变量是否属于某一类 class 的实例 举个例子 class A{} class B{} $a=new A; var_dump($a instanceof A); var_dump($a instanceof B); 输出结果为: bool(true) bool(false) //第一个为真,第二个为假。所以$a属于A类。

运算符优先级

这里直接参考的PHP学习手册,按照优先级,由高到低列出下表。

小结

第一部分总结了PHP的一些数据类型和运算符。在下一部分中,会总结一些流程控制,包括分支控制、循环控制等。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 03 . Python入门之运算符

    除了以上的一些运算符之外,Python还支持成员运算符,测试实例中包含了一系列的成员,包括字符串,列表或元组.

    常见_youmen
  • JavaNote[003] - 运算符与类型转换

    1)如果两个操作数有一个是Long,那么结果就为Long,如果没有Long时,结果为int,即便操作数全为short、byte,都是int;

    Sam Gor
  • python学习之数据类型与运算符号

    py3study
  • 【Java】02 数据类型与运算符

       编写程序时给代码添加一些注释,用以说明某段代码的作用,或者说明某个类的用途、某个方法的功能,以及该方法的参数和返回值的数据类型及意义等,可以提高代码的可读...

    Demo_Null
  • Python变量、数据类型与运算符

    py3study
  • C语言入门系列之2.数据类型、运算符和表达式

    对于基本数据类型量,按其取值是否可改变又分为常量和变量两种。 在程序执行过程中,其值不发生改变的量称为常量,其值可变的量称为变量。 它们可与数据类型结合起来...

    cutercorley
  • Go 语言基础入门教程 —— 数据类型篇:整型和运算符

    在 PHP 中,默认只有 int 这一种带符号的整数类型,其长度与平台相关,在 32 位平台下其最大值为 20 亿左右(等同于 Go 语言中的 int32),6...

    学院君
  • 前端入门9-JavaScript语法之运算符声明正文-运算符

    作为一个前端小白,入门跟着这几个来源学习,感谢作者的分享,在其基础上,通过自己的理解,梳理出的知识点,或许有遗漏,或许有些理解是错误的,如有发现,欢迎指点下。

    请叫我大苏
  • Python3入门与实践(二): 运算符详解

    Meet相识

扫码关注云+社区

领取腾讯云代金券