PHP支持下列8种类型

标量类型 scalar type
整数 integer
浮点数 float double
布尔 boolean
字符串 string

特殊类型 special type
NULL
资源 resource

符合类型 compound type
数组 array
对象 object

整数
echo (10); //显示十进制整数10
echo (010); //显示八进制整数8
echo (0x10); //显示十六进制整数16
echo (0b10); //显示二进制整数2
echo PHP_INT_SIZE; //表示整数integer值的字长
echo PHP_INT_MAX; //显示最大整数
echo PHP_INT_MIN; //显示最小整数

浮点数 float double
echo (-123.456);
echo (+12.3);
echo (0.123456789012342);
echo (1.2345E+2);
echo (-1223.45e-3);

布尔 boolean 用来表示TRUE或者FALSE两种值 没有字母大小写之分
当我们将布尔数据转化为值类型时 TRUE会转换成1 FALSE会转化成0
当我们将布尔数据转化为字符串类型时 TRUE会转换成"1" FALSE会转化成空字符串""
当我们将非布尔数据转化为布尔类型时 只有下列数据会转成FALSE,其他数据均会转化成TRUE,包括所有负数以及任何有效资源
整数0
浮点数0.0
空字符串"" 与字符串"0"
没有元素的数组
没有成员的对象
特殊类型NULL(包括尚未设置的变量)

字符串
单引号字符串 single quoted string
双引号字符串 double quoted string
heredoc 语法
nowdoc 语法

single quoted string
echo ('happy birthday!'); //显示 happy birthday
echo ('C:\\Win'); //显示C:\Win
echo ('I am \'Jean\'.'); //显示 I am 'Jean' \为转义字符 会被解析为'

double qouted string
echo ("I am \"Jean"\.");
$str = "Mary";
echo ("Hi.$str"); //显示str 会被解析为字符串 Mary
echo (\u{00A9}); //显示UTF-8字符 U+00A9表示© 符号
echo (\u{A9}); //显示UTF-8字符 U+00A9表示© 符号 开头的0可以省略

英语学习 parser 解析器

heredoc语法
php 中的 heredoc技术是php用来引用字符串的一种方式
这种表示法有固定的格式 一开始是<<< 运算符 接着就是标识符和换行 然后是字符串
最后以同一个标识符结尾 标识符的命名规则和变量相同

<?php
echo <<< STR1
My name is Jean <br>
Happy birthday to you!
STR1;
?>

nowdoc语法 针对单引号字符串的
here语法会进行变量解释,而newdoc语法不会
<?php
$name = "Jean";
echo <<<'STR1'
My name is $name.<br>
Happy birthday to you!
STR1;
?>

我们可以使用数组 array的概念存取字符串中的字符,而且键 key的起始值为0 举例来说 假设 $str = "Day"; 那么第一个字符为$str[0] 即D
第二个字符为$str[1],即a 其他以此类推如果要变更字符串的字符 假设要将第一个字符更改为P 那么可以写成$str[0] = "P"; $str的值就变成了"Pay"

NULL
凡是尚未设置值得变量 值都赋值为常数NULL的变量和值被unset的函数清除的变量均会被视为NULL

资源
资源 resource 代表的是一种特殊值 用来指向PHP程序的外部资源 例如 数据库 图形图像 等

$my_resource = mysql_connect();

一般来说 我们并不需要手动释放资源 PHP ZEND Engine 会自动管理除了数据库之外的所有资源,当我们要是手动释放资源的时可以将指向资源的变量设置为NULL
$my_resource = NYLL;

类型转换
PHP会视实际情况自动转换类型

检查类型
PHP提供了可以检查数据类型的几个函数
gettype(arg) - 返回参数arg的类型
is_integer(arg) is_int(arg) in_long(arg) 若参数为整数类型 就返回true 否则返回false
is_float
is_bool
is_string
is_null
is_array
is_resource
is_object
is_numberic
is_scalar

明确转换类型
echo (int)TRUE //转型表达式(int) 将true转化为整数1,故显示1
float double real bool boolean string array object
使用settype(var,type)
$var = TRUE;
settype($var,"integer");
echo $var;

使用intval(var) floatval(var) strval(var) 将参数分别转换为integer float string 类型

变量命名规则
PHP区分大小写
$
第一个字符可以是英文字母和下划线

PHP有自定义变量和预定义变量 上面说的是自定义变量 下面是预定义变量
$_SERVER
$_ENV
$_COOKIE
$_GET
$_POST
$_FILES
$php_errormsg 前一个错误信息
$_REQUEST Request变量
$_SESSION Session变量
$_GLOBAL Global变量

PHP属于动态类型的程序设计语言 变量使用前无需声明类型 同时可以在运行期间视实际情况动态转换类型

一般赋值
$myName = "小丸子"; //变量myName的类型为string

引用赋值
$var1 = "John";
$var2 = &$var1;
$var2 = "Mary";
echo $var2; //显示Mary

可变变量
$var = "Happy";
$$var = "Birthday";
echo $var; //显示变量var的值 Happy
echo $$var; //显示变量Happy的值 Birthday
echo $Happy; //显示变量Happy的值 Birthday

作用域 scope
全局变量 global variable
函数 function
局部变量 local variable

变量处理函数
isset(arg) 若参数arg的值不是NULL 返回true 否则false
unset(arg) 清除参数arg的值 使之成为NULL
empty(arg) 若参数arg的值是空的,返回true 否则返回false 所谓空的 整数0 浮点数0.0 空字符串 "" 字符串"0" 空数组 NULL FALSE var $var 在类内声明并且尚未设置值的变量
intval(arg) 返回参数arg的整数值
floatval(arg)返回参数arg的浮点数

常数 constant
php提供用户自定义常数和预定义常数两种
自定义
define(name,value[,case_insensitive])

define("PI",3.14);
define("X",10*5);
define("Y",X+2);

预定义的常数 predefined constant
PHP_INT_SIZE
PHP_INT_MAX
...

魔法常数 magic constant
_LINE_ 文件的行数
_FILE_ 完整的路径与文件名
_DIR_ 文件所在的目录
_FUNCTION_ 函数名称
_CLASS 类型名
_METHOD 方法名称
_NAMESPACE_ 命名空间名称

运算符
算术运算符 - + * / % **
字符串运算符 连接字符串 小数点.
递增递减运算符++ -- ++$a $a++ --$a $--;
比较运算符 == != <> < > <= === !== <=> ??
位运算符
逻辑运算符 !and or xor && ||
赋值运算符 = += -+ *= /= %=
条件表达式 ?: 10>2?"YES":"NO"; 结果true返回第一个表达式的值,否则返回第二个表达值的值
错误控制运算符 $a = @file("c"\hellop.php");
执行运算符 ``的用途是执行shell命令
运算符优先级 加括号改变优先级

php的输出函数
echo str1[,str2,[,str3...]]
echo '<i>Hello!</i><br>';
echo 'happy','birthday','<br>';
echo '<a href="default.htm">回首页</a>';

print str 只接受一个参数 并且print有返回值
print 'hello';

var_dump(var1[,var2[,var3...]]) 输出一个或多个变量
var_dump ($a,$b,$c);

PHP学习 类型 变量 常数 运算符的更多相关文章

  1. Java笔记2-数据类型,变量,Java运算符

    我们编写软件,目的是为了高效的操作(增,删,改,查)数据. 数据类型 1.基本类型(8种)byte 字节型 -128~127short 短整型 -32768~32767int 整型 -21474836 ...

  2. C#.NET学习笔记7--11---算术运算符,变量赋值,变量的交换,布尔表达式1,布尔表达式2

    C#.NET学习笔记7---算术运算符 2013/9/6 技术qq交流群:JavaDream:251572072  教程下载,在线交流:创梦IT社区:www.credream.com 1.Consol ...

  3. Objective-C中的数据类型、常量、变量、运算符与表达式

    1.Objective-C中的数据类型: Objective-C中的基本数据类型有:int.char(-128-127).float.double.BOOL,Byte(0-255) Id类型相当于(等 ...

  4. python3 第五章 - 什么是变量、运算符、表达式

    在读这一章时,运算符的内容比较多,不要去死记.现在记不住也没有关系,现在只要有这个印象.在后面的学习中,会慢慢加深理解,在理解中去记就容易得多了 1.变量 什么是变量?通俗的讲,就是存储在内存中可以变 ...

  5. JavaScript:学习笔记(6)——New运算符

    JavaScript:学习笔记(6)——New运算符 new 运算符创建一个用户定义的对象类型的实例或具有构造函数的内置对象的实例. 快速开始 当你使用new关键字的时候,会 创建一个新的对象 将th ...

  6. Java基础(变量、运算符)

    第2天 Java基础语法 今日内容介绍 u 变量 u 运算符 第1章 变量 1.1 变量概述 前面我们已经学习了常量,接下来我们要学习变量.在Java中变量的应用比常量的应用要多很多.所以变量也是尤为 ...

  7. GO语言基础(结构+语法+类型+变量)

    GO语言基础(结构+语法+类型+变量) Go语言结构 Go语言语法 Go语言类型 Go语言变量       Go 语言结构 Go 语言的基础组成有以下几个部分: 包声明 引入包 函数 变量 语句 &a ...

  8. Java基础语法01——变量与运算符

    本文是对Java基础语法的第一部分的学习,包括注释:标识符的命名规则与规范:变量的数据类型分类以及转换:以及六种运算符(算术.赋值.比较.逻辑.三元和位运算符).

  9. js学习之变量、作用域和内存问题

    js学习之变量.作用域和内存问题 标签(空格分隔): javascript 变量 1.基本类型和引用类型: 基本类型值:Undefined, Null, Boolean, Number, String ...

随机推荐

  1. Hadoop HBase概念学习系列之HMaster服务器(四)

    每台HRegion服务器都会和HMaster服务器通信,HMaster的主要任务就是告诉每个HRegion服务器它要维护哪些HRegion. 当一台新的HRegion服务器登录到HMaster服务器时 ...

  2. October 11th 2017 Week 41st Wednesday

    If you don't know where you are going, you might not get there. 如果你不知道自己要去哪里,你可能永远到不了那里. The reward ...

  3. arcgis pro2.3教程与问题集持续更新(一)

    Arcgis pro 2.3是64位的不支持mdb 数据库,因为微软没有开放Access64的接口,所以不能支持个人地理数据库.mdb(Microsoft Database). arcgis pro ...

  4. beta冲刺————第三天(3/5)

    完善的具体内容: 前端: (1)可以进行修改文字大小背景 其中,金色的文字个人觉得很好看,点赞.(我很满意啊) (2)可以改变成夜间模式(也很不错啊) 后端: 尝试将本地的后端war文件,以及数据库传 ...

  5. SDN 期末作业验收

    前言 SDN 期末作业验收我们是采用的参考场景一,我们在此场景的基础上来做负载均衡,下面是我们搭建的拓扑图 演示视频 https://pan.baidu.com/s/1htkKLPM 负载均衡程序 相 ...

  6. ArcGIS API for Javascript之专题图的制作(四)热力图渲染(上)

    一 .热力图定义 热力图(heat map)也称热图,是以特殊颜色高亮区域的形式表示密度.温度.气压.频率等分布的不易理解和表达的数据. 二.HeatmapRenderer esri/renderer ...

  7. MongoDB3.2配置文件.md

    Core Options systemLog Options systemLog: verbosity: <int> quiet: <boolean> traceAllExce ...

  8. BZOJ2115:[WC2011] Xor(线性基)

    Description Input 第一行包含两个整数N和 M, 表示该无向图中点的数目与边的数目. 接下来M 行描述 M 条边,每行三个整数Si,Ti ,Di,表示 Si 与Ti之间存在 一条权值为 ...

  9. Ant在MyEclipse中的配置总结

    1.在配置Ant之前,先要配置好JDK的JAVA_HOME和path:之后下载解压apache-ant-1.7.1;并配置环境变量ANT_HOME(安装目录,后不可以加分号:)及其path(安装目录/ ...

  10. OpenCV——图像的深度与通道数讲解

    矩阵数据类型: – CV_(S|U|F)C S = 符号整型 U = 无符号整型 F = 浮点型 E.g.: CV_8UC1 是指一个8位无符号整型单通道矩阵, CV_32FC2是指一个32位浮点型双 ...