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. Office 手动kms激活方法

    服务作用:在线激活windows和office 适用对象:VOL版本的windows和office 适用版本:截止到win10和office2016的所有版本 服务时间:24H,偶尔更新维护 优点:在 ...

  2. 过滤掉URL中的参数部分

    //将超链接的参数部分滤掉 ?xxx if(url.contains("?")){ url=url.substring(0,url.indexOf("?")); ...

  3. Apache的安装与AWstats分析系统

    实验拓扑图: 实验要求: 1.  WEB服务器: 使用源码包apache实现.安装完成后,并优化执行路径. 启动服务后,客户端通过http://IP能访问默认的网站. 2.  DNS服务器: 安装DN ...

  4. 元素视差方向移动jQuery插件-类似github 404页面效果

    原文地址:http://www.xuanfengge.com/shake.html 前言: 视差滚动,大家也许并不陌生.但是对于视差方向移动,你是否有见过效果呢?看官请进来瞧瞧~ demo : 轩枫阁 ...

  5. javascript:void(0)的问题

    最近看了好几个关于<a>标签和javascript:void(0)的帖子,谨记于此,以资查阅. 注:以下代码未经全面测试,但每一种方法可能会出现的情况都基本做了说明. 在做页面时,如果想做 ...

  6. weex+vue2.x 踩坑实录(不定期更新)

    执行 npm start 显示空白页面 这个是开始使用weex就出现的一个大坑,说实话对新手真的很不友好. 1.打开控制台显示:Cannot assign to read only property ...

  7. [转]numpy中的np.max 与 np.maximum区别

    转自:https://blog.csdn.net/lanchunhui/article/details/52700895

  8. JAVA框架:hibernate(二)

    一.事务操作. 代码: @Test public void tr_Up(){ Session session=hibernateUtils.getSession(); Transaction tran ...

  9. jsp泛型支持

    今天在使用idea做练习时,某个jsp页面报错如下: '<>'operator is not allowed for source level below 1.7 出错代码如下: Map& ...

  10. JavaScript标准对象

    1.Date var now = new Date(); now; // Wed Jun 24 2015 19:49:22 GMT+0800 (CST) now.getFullYear(); // 2 ...