PHP的运算符和表达式

目录

第三章 运算符和表达式   

3.1常量

3.1.1 自定义常量

3.1.2 预定义变量

3.2 变量

3.2.1 变量的概念

3.2.2 定义和使用变量

3.2.3 变量的赋值方式

3.2.4 可变变量

3.2.5 PHP预定义变量

3.3 PHP运算符

3.3.1 算术运算符(四则运算)

3.3.2 字符串运算符

3.3.3 赋值运算符

3.3.4 位运算符

3.3.5递增或递减运算符(和c语言一样的意义)

3.3.6 逻辑运算符

3.3.7 比较运算符

3.3.8 条件运算符

3.3.9 运算符优先级

3.4 表达式

3.5 数据类型的转换

3.5.1 自动转换

3.5.2 强制转换


第三章 运算符和表达式   

3.1常量

常量用于储存不经常改变的数据信息。常量的值被定义后,在程序的整个执行期间,这个值都有效,并且不可再次对该常量进行赋值。

3.1.1 自定义常量

1.使用define ()  函数声明常量,语法如下:

define(string constant_name,mixed value,case_sensitive=true)   

define函数的参数说明

参数

说明

constant_name

必选参数,常量命名,即标识符

value

必选参数,常量的值

case_sensitive

可选参数,指定是否大小写敏感,设定为true,表示不敏感

mixed是指混合类型,它不单纯指一种类型,而是PHP对各种类型的一种通用表示形式。   

2.使用constant()函数获取常量的值

获取指定常量的值和直接使用常量的名输出的效果是一样的。但函数可以动态地输出不同的常量更加灵活。

语法如下:

mixed constant(string const_name);   

const_name是要获取常量的名称。如果成功,则返回常量的值;如果失败,则提示错误信息常量没有被定义。   

3.使用defined()函数判断常量是否已经被定义

语法如下:

bool defined(tring constant_name);   

参数constant_name为要获取常量的名称,成功则返回true,失败则返回false。

举个栗子:

使用define()函数来定义名为MESSAGE的常量,使用cconstant()函数来获取该常量的值,最后使用defined()函数来判断常量是否已经被定义。

代码如下:

<?php

define("MESSAGE","能看到一次");

echo MESSAGE;

echo Message;

define("COUNT","能看到多次",true);

echo "<br>";

echo COUNT;

echo "<br>";

echo Count;

echo "<br>";

echo constant("Count");

echo "<br>";

echo (defined("MESSAGE"));

?>   

注意:在上述代码中很有可能报错

解决办法:

关于error_reporting()函数的de调整   

修改php.ini error_reporting = E_ALL & ~E_NOTICE    

3.1.2 预定义变量

PHP中预定义常量

常量名

功能

__FILE__

默认常量,PHP程序的完整路径和文件名

__LINE__

默认常量,PHP程序行数

PHP_VERSION

内建常量,PHP程序的版本,如“3.0.8_dev”

PHP_OS

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

TRUE

这个常量是一个真值(true)

FALSE

这个常量是一个假值(false)

NULL

一个null值

E_ERROR

这个常量指到最近的错误处

E_WARNING

这个常量指到最近的警告处

E_PARSE

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

E_NOTICE

这个常量为发生不寻常,但不一定错误处

说明:

__FILE__和__LINE__中的“__”是两条下划线而不是一条。   

举个栗子:

<?php

echo "当前文件路径为:".__FILE__;

echo "<br>";

echo "当前行数为:".__LINE__;

echo "<br>";

echo "当前PHP的版本信息为:".PHP_VERSION;

echo "<br>";

echo "当前操作系统为:".PHP_OS;

?>   

注意,在每个语句中都有一个".",把语句和预定义常量隔开。

3.2 变量

3.2.1 变量的概念

值可以改变的量称为变量。

3.2.2 定义和使用变量

PHP与其他语言的区别在于PHP中变量使用之前不需要声明变量。用$和标识符表示,变量名是区分大小写的。

PHP中变量名称遵循以下约定:

(1)区分大小写   

(2)变量名必须以($)开始

(3)名字开头可以为"_"

(4)名字不可以数字字符开头

例:

<?php

$n_sum=100;         //定义一个整型变量

$str1=false;            //定义一个布尔型变量

$str2="";                //定义一个空字符串

?>   

字符传的初始值为空值;整形的初始值为0;布尔型的初始值为false。   

PHP中变量名区分大小写,函数名称不区分大小写。   

3.2.3 变量的赋值方式

直接赋值、传值赋值、引用赋值

1.直接赋值

直接赋值就是使用"="直接将值赋给某个变量。例如:

<?php

$name="mingri";

$number=30;

echo $name;

echo $number;

?>   

结果如下:

mingri

30

2.传值赋值

传值赋值就是使用"="将一个变量的值赋给另一个变量。

<?php

$str1="PHP编程词典";

$str2=$str1;

?>   

3.引用赋值(类似于指针)

<?php

$str="学习PHP很想轻松";   

$str2=&$str;

$str="我要大声告诉你: $str";

echo $str2;

echo "<p>";

echo $str;

?>   

3.2.4 可变变量

可变变量一般是指使用一个变量的值作为另一个变量的名称。通常用两个"$"符号实现。

例子:

<?php

$change_name="php";

$php="编程的关键因素在于学好语言基础";

echo $change_name;

echo $$change_name;

?>   

3.2.5 PHP预定义变量

预定义变量

$_SERVER['SERVER_ADDR']

当前运行脚本所在的服务器的IP地址

$_SERVER['SERVER_NAME']

当前运行脚本所在服务器主机的名称。如在虚拟机上则由虚拟机的设置值所决定。

$_SERVER['REQUEST_METHOD']

访问主页时的请求方法,如GET、HEAD、POST、PUT等。

$_SERVER['REMOTE_ADDR']

正在浏览当前页面的用户的IP地址。

$_SERVER['REMOTE_HOST']

正在浏览当前页面的用户的主机名。

$_SERVER['REMOTE_PORT']

用户连接到服务器所使用的端口。

$_SERVER['SCRIPT_FILENAME']

当前执行脚本的绝对路径名。

$_SERVER['SERVER_SIGNATURE']

服务器所使用的端口,默认为80.如果使用SSL安全链接,则这个值为用户设置的HTTP端口。

$_SERVER['DOCUMENT_ROOT']

包含服务器版本和虚拟机名的字符串。

$_COOKIE

通过HTTPCookie传递的脚本的信息。

$_SESSION

包含与所有绘画变量有关的信息。

$_POST

包含通过POST方法传递的参数的信息,只要用于获取通过POST方法提交的数据。

$_GET

包含通过GET方法传递的参数的相关信息,主要用于获取GET通过GET方法提交的数据。

$GLOBALS

由所有已经定义全局变量组成的数组。变量名就是该数组的索引。

3.3 PHP运算符

字符串运算符、算术运算符、赋值运算符、递增或递减运算符、位运算符、逻辑运算符、比较运算符、条件运算符。

3.3.1 算术运算符(四则运算)

常用的算术运算

名称

操作符

实例

加法运算

+

$a+$b

减法运算

-

$a-$b

乘法运算

*

$a*$b

除法运算

/

$a/$b

取余数运算

%

$a%$b

3.3.2 字符串运算符

字符串运算符只有一个,即英语的句号 ”.“。它将两个或多喝字符串连接起来。

举个栗子:

<?php 
$m="520abc";
$n=1; $mn=$m.$n; 
echo $mn."<br>"; 
$nm=$m+$n; 
echo $nm."<br>"; 
?>

结果如下:

520abc1

521

3.3.3 赋值运算符

赋值运算符主要用于处理表达式的赋值操作。

PHP中常用的赋值运算符:

操作

符号

实例

展开形式

赋值

=

$a=$b

$a=$b

+=

$a+=$b

$a=$a+$b

-+

$a-=$b

$a=$a-$b

*=

$a*=$b

$a=$a*$b

/=

$a/=$b

$a=$a/$b

连接字符

.=

$a.=$b

$a=$a.$b

取余数

%=

$a%=$b

$a=$a%$b

3.3.4 位运算符

位运算符是指对二进制位从低位到高位对齐后进行运算。

PHP中的位运算符

符号

作用

实例

&

按位与

$m&$n

|

按位或

$m|$n

^

按位异或

$m^$n

~

按位取反

$m~$n

<<

向左移位

$m<<$n

>>

向右移位

$m>>$n

3.3.5递增或递减运算符(和c语言一样的意义)

举个栗子:

<?php $a=6; 
$b=9; echo "\$a=$a,\$b=$b<p>"; 
echo "\$a++=".$a++."<br>"; 
echo "运算后、\$a的值:" .$a."<p>"; 
echo "++\$b=".++$b."<be>"; 
echo "运算后\$b的值:".$b; 
echo "<hr><p>"; 
?>

3.3.6 逻辑运算符

PHP中的逻辑运算符

运算符

实例

结果为真

&&或and(逻辑与)

$m and $n

当$m 和 $n 都为真时

||或or(逻辑或)

$m || $n

当其中至少一个为真时

xor(逻辑异或)

$m xor $n

当两者一真一假时

!(逻辑非)

!$m

当$m为假时

3.3.7 比较运算符

比较结果为真则返回true,假返回false。

PHP中的比较运算符

运算符

实例

<

小于

>

大于

<=

小于等于

>=

大于等于

==

相等

!=

不等

===

恒等

!==

非恒等

说明:

$a===$b 是指两个变量不仅在数值上相等,而且类型也一样。

$a!==$b 说明$a和$b或者数值不等,或者类型不同

3.3.8 条件运算符

语法格式如下:

表达式1?表达式2:表达式3

如果表达式1的值为true,则执行表达式2,否则执行表达式3.   

3.3.9 运算符优先级

PHP运算符的优先级

优先级别(从低到高)

运算符

1

or,and,xor

2

赋值运算符

3

?:

4

||,&&

5

|,^

6

&

7

==,!=,===,!==

8

< , > ,<= ,>=

9

<< , >>

10

+,-

11

*, / , %

12

! , ~

13

++ , --

3.4 表达式

将运算符和操作数连接起来的式子叫做表达式。

注意:每个表达式的结尾都要加“分号”。   

3.5 数据类型的转换

3.5.1 自动转换

      数据类型的自动转换是指在定义常量或变量时,不需要指定常量或变量的数据类型。在代码执行过程中,PHP会根据需要将常量或变量转换为合适的数据类型。

转换规则:

(1)布尔型数据和数值型数据在进行算术运算时,True被转换为整数1,False被转换为整数0。

(2)字符串类型数据和数值类型在进行算术运算时,如果字符串以数字开头,将被转换为相应的数字;如果字符串不是以数字开头,将被转换为整数0;

(3)在进行字符串连接运算时,整数、浮点数将被转换为字符串数型数据,布尔值True将被转换为字符串“1”,布尔值False和Null将被转换为空字符串“ ”。

(4)在进行逻辑运算时,整数0,浮点数0.0、空字符串“ ”、字符串“0”、Null以及空数组将被转换为布尔值False,其他数据将被转换为布尔值True。

3.5.2 强制转换

1.应用括号括起来的类型名称进行转换

PHP允许转换的类型

转换操作符

转换类型

举例

(boolean),(bool)

转换为布尔型

(boolean)$num , (bool)$str

(string)

转换为字符型

(string)$flo

(integer),(int)

转换为整形

(integer)$boo , (int)$str

(float),(double),(real)

转换为浮点型

(float)$str , (double)$str

(array)

转化为数组

(array)$str

(object)

转换为对象

(object)$str

注意:

在进行类型转换的过程中,应该注意,转化为boolean型时,null、0和未赋值的变量或数组会被转换为false,其他的为真;转换成整形时,布尔型的false转换为0,true转换为1,浮点型小数的部分被舍去,字符型如果以数字开头,就截取到非数字位,否则输出0.   

2.使用以val结尾的函数

常用的有 intval()、floatval()、strval()

语法格式:

函数名

语法格式

返回值

intval

int intval(mixed var)

返回var的整数值

floatval

float floatval(mixed var)

返回var的浮点数值

strval

string strval(minxed var)

返回var的字符串值

举个栗子:

<?PHP $str= "123.456abc"; 
$int= intval($str); 
$flo= floatval($str); 
$str= strval($str); 
var_dump($int); 
echo("<br>"); 
var_dump($flo); 
echo("<br>"); 
var_dump($str); 
?>

3.使用settype()函数

该函数可以将指定的变量转换成指定的数据类型

bool settype(mixed var,string type)

(1)参数var为指定的变量

(2)参数type为指定的类型,有七个可选的值:boolean 、 float 、 integer 、 array 、 null 、 object 和 string。如果转换成功,则返回true,否则返回false

注意:

使用settype()函数设置变量数据类型时,变量本身的数据类型将会发生变化。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Jqh.

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值