php基础语法(数据类型、运算符)
数据类型
标量类型: int, float, string, bool
复合类型: array, object
特殊类型: null, resouce
整数类型int, integer
字符串类型string
单引号不会解析里面的内容
双引号会解析里面的内容
定界符 里面可以写大段文字不会解析
<<<’ABCD’
ABCD;
布尔类型:bool, boolean
在php中,其他各种数据,隐含转换为布尔值的时候,会当作false的有:
0
0.0
null
“”
“0”
array(); //空数组
未定义的变量 //当然要尽量避免
数组类型array
php中,数组的下标可以使用整数或字符串。
数字下标常说“索引号”,
字符串下标常说“键名”。
foreach( 数组名 as 下标变量$k => 值变量$v1 ){
//这里就是循环体,就可以使用两个变量$k, $v1
}
对象类型object
资源类型resource
含义:基本上都是指对外部数据的引用。(数据非php代码生成的)
不是PHP语言通过某种语法形式“创造”的数据,而是外部本来就有该数据(比如数据库,文件,图片),PHP只是通过某种语法(或方式)来对其进行某些操作。
空类型null
数据类型转换
字符串转换为数字从左边开始一直到第一个不是数字的字符结束
与类型相关的系统函数
var_dump():能够输出一个变量的完整信息。
getType():获取一个变量的类型名称,结果是一个单词(字符串),
setType();设置一个变量的类型,语法: setType(变量名,目标类型)
运算符
算术运算符
有以下几个:+ - * / % ++ --
注意:注意取余运算%,先取整,再取余
比较运算符:
包括:> >= < <= ==松散相等 != ===严格相等 !==
逻辑运算符:&& || !
前提:都是针对布尔类型的值进行的运算,如果不是布尔,就会转换为布尔。
字符串运算符:
只有一个: .
赋值运算符:
只有一个: =
条件(三目)运算符:
数组运算符
注意:php中,数组的元素的顺序,不是由下标(键名)决定的,而是完全由加入的顺序来决定。
联合(+):将右边的数组项合并到左边数组的后面,得到一个新数组。如有重复键,则结果以左边的为准
$v1 = array(1, 2,3, 4);
$v2 = array(5,6,7,8,9);
$r1 = $v1 + $v2; //结果只能是:array(1,2,3,4,9)
相等(==): 如果两个数组具有相同的键名和键值(可以顺序不同,或类型不同),则返回true
$v1 = array(1, 2,3, 4);
$v2 = array(4,2,1,3);
$v3 = array(3=>4,1=>2,0=>1,2=>3);
此时:$v1和$v2 相等吗?——不等
此时:$v1和$v3 相等吗? ——相等
不相等(!=, <>) :如果两个数组不是相等(==),则返回true
全等(===):如果两个数组具有相同的键名和键值且顺序和类型都一样,则返回true
不全等(!==) : 如果两个数组不是全等(===),则返回true
错误控制运算符:@
通常用于一个“可能”发生错误的表达式的前面——最常用的情形就是连接数据库。
$link = @mysql_connect(“localhost, ”’, “”,’”);
不过,在应用中,还会更进一步:
$link = @mysql_connect(“localhost, ”’, “”,’”) or die("数据库连接失败");
其中or也是逻辑运算符,通常只用在这种位置。
通常错误控制运算符用在程序开发测试阶段无法预测的可能出错的位置——一般是获取外部资源的时候。
运算符的优先级
要意识到运算符有优先级问题
括号最优先,赋值最落后(通常)
先乘除后加减
大致:算术运算符〉比较运算符〉逻辑运算符(除了“非”运算)
常见不同类型的比较(主要指标量类型的数据)——非正常比较
正常比较——数字的大小比较
如果有布尔值,均转为布尔值比较:规则:true > false
否则,如果有数字,均转为数字比较:
否则,如果两边都是纯数字字符串,转为数字比较
否则,就按字符串比较
字符串的比较规则为:按字符的先后顺序依次一个一个比较,发现哪个大,则就表示整体大,后续不再比较
php基础语法(数据类型、运算符)的更多相关文章
- Java基础语法(3)-运算符
title: Java基础语法(3)-运算符 blog: CSDN data: Java学习路线及视频 1.算术运算符 算术运算符的注意问题 如果对负数取模,可以把模数负号忽略不记,如:5%-2=1. ...
- python基础语法(运算符及优先级)
python基础语法(运算符及优先级) python语言支持的运算符类型 算数运算符 假设变量a为10,变量b为21 算数符 描述 实例 + 加-两个对象相加 a+b结果31 - 减-得到一个负数或者 ...
- JavaScript01 js基础语法,数据类型
JavaScript的概述: 1.组成 三部分组成 ecmaScript 基础语法 (es5) dom document object model 文档对象模型 (操作html文档内容) bom bo ...
- JavaSE入门学习6:Java基础语法之运算符和语句(上)
继续接着上篇:JavaSE入门学习5:Java基础语法(一)来看Java的基础语法. 五运算符 运算符是一种"功能"符号,用以通知Java进行相关的运算.比方.我们须要将变量age ...
- Java学习笔记之基础语法(数据类型)
8种基本数据类型 整型: byte[1字节] short[2字节] int[4字节] long[8字节] 1,四种整型之间的区别:申 ...
- 第2章 Python基础语法 -- 数据类型
2.2数据类型 变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间.基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中. 2.2.1 标准数据类型 在内存中存储 ...
- Java基础语法:运算符
Java 运算符(operator)根据功能分类: 算术运算符:+,-,*,/,%,++,-- 赋值运算符:= 关系运算符:>,<,>=,<=,==,!=,instanceof ...
- Java菜鸟之java基础语法,运算符(三)
赋值运算符 (一)JAVA种的赋值运算符 = ,代表代表的等于,一般的形式是 左边变量名称 = 右边的需要赋的指或者表达式,如果左侧的变量类型级别比较高,就把右侧的数据转换成左侧相同的高 ...
- Java基础语法(二)<运算符>
运算符: 下面的都是相关的练习: 1.键盘录入一个三位整数数,请分别获取该三位数上每一位的数值 import java.util.Scanner; public class Test02 { publ ...
- 【python基础语法】运算符&if条件语句&while循环&for循环(第5天课堂笔记)
""" if语法规则: if 条件比较语句1: # 条件成立的时候 会执行的代码 elif 条件比较语句2: # 条件2成立的时候 会执行的代码 else: # 条件不成 ...
随机推荐
- 为什么U盘在拔出之前需要“安全弹出”?
前言 我们不知道从什么时候开始有一个观念:U盘一定要点击“安全弹出”才能拔.那么是不是在任何情况下都必须要这样呢? 介绍 U盘的传输策略有两种: 写入缓存:这种策略在windows中称为“更好的性能” ...
- JQuery对象与javascript对象的转换
jQuery 对象是通过 jQuery 包装DOM 对象后产生的对象. jQuery 对象是 jQuery 独有的,其可以使用 jQuery 里的方法,但是不能使用 DOM 的方法:例如: $(&qu ...
- MySQL相关问题总结
希望此贴能够将MySQL安装周围的问题总结清楚,也免得自己再遇到问题时而不知所措.本帖中所有关于MySQL的问题均涉及到两个平台:Ubuntu 和 Windows(本人没有Mac) 问题1:MySQL ...
- Neutron三层网络服务实现原理
Neutron 对虚拟三层网络的实现是通过其 L3 Agent (neutron-l3-agent).该 Agent 利用 Linux IP 栈.route 和 iptables 来实现内网内不同网络 ...
- 常用js、jquery 语句(句型)
1.动态更改设置属性(class style 都是属性) $("#sendPhoneNum").attr("class", "n_input3&qu ...
- halcon中你不知道的标定板细节
本人文着重阐述以下问题: halcon是否只能使用halcon专用的标定板? halcon标定板如何生成? halcon标定板如何摆放,拍照数量有无限制? halcon是否只能使用halcon专用的标 ...
- SpringXML方式配置bean的自动装配autowire
Spring的自动装配,也就是定义bean的时候让spring自动帮你匹配到所需的bean,而不需要我们自己指定了. 例如: User实体类里面有一个属性role 1 2 3 4 5 6 7 publ ...
- 正则表达式 preg_match 匹配中文
preg_match 匹配中文出错 2010年01月06日 星期三 14:55 错误提示: Warning: preg_match() [function.preg-match]: Compilati ...
- ubuntu maven install&config
可以通过命令直接安装,我还是用文件安装. 1,下载apache-maven-3.5.0-bin.tar.gz二进制压缩文件 https://maven.apache.org/download.cgi ...
- [置顶]
flume高并发优化——(14)解决空行停止收集数据问题,及offsets变小问题
日志平台运行一段时间,发现日志有部分丢失,通过检查日志,发现有两个问题导致数据丢失,一个是遇到空行后,日志停止收集,还有就是kafka监控offsets时变小,通过分析代码,找到如下方法: 空行问 ...