php变量和数据类型

php中的变量

PHP中的变量声明

PHP中的变量的使用

PHP中的数据类型之整型

PHP数据类型之浮点类型和布尔类型

PHP数据类型之字符串类型

PHP数据类型之heredoc和nowdoc的使用

PHP数据类型之复合类型和特殊类型n

PHP中的数据类型转换之自动转换

PHP数据类型转换之强制转换中的临时转换

PHP数据类型转换之强制转换中的永久转换

什么是变量

在程序执行期间可以变化的量的就是变量,通过变量保存值

声明变量:

通过美元$变量名称来表示变量,可以声明变量在使用,也可以不声明,可以一次声明一个,也可以一次声明多个

变量名称以字母或者下划线开始,后面跟上数字、字母下划线,不能包含特殊字符

变量名称最好含义明确

变量命名最好遵循驼峰标记法或者是下划线法

驼峰标记法 小骆驼 firstName,lastName,zendControllerFront 大骆驼 FirstName,LastName,ZendControllerFront

下划线法 first_name,last_name,zend_controller_front

变量名称严格区分大小写,

A这是两个变量

如果变量名称重复,后面的变量会覆盖之前变量的值

PHP是弱类型语言,变量可以不声明直接使用

使用变量 直接书写变量的名称即可 $变量名称

可变变量 等量代换

file

Parse error(解析错误): syntax error(语法错误), unexpected '<', expecting end of file Notice(通知): Undefined variable(未定义的变量): sdkljflskdjflksdjflksdjfklj Catchable fatal(致命) error: Object of class stdClass could not be converted to string Warning(警告): settype(): Invalid(非法) type

file

php中的数据类型

8种主要数据类型 5种伪类型

5种伪类型 number mixed callback void ...

标量类型 复合类型 特殊类型

复合类型 数组(Array) 对象(Object)

特殊类型 资源(Resource) 空(null|NULL) 变量未声明直接使用,它的值就是null 声明一个变量并且赋值为null 经过unset()注销过的变量值为null

整型(int|integer) 整数 分类 十进制 八进制 十六进制 范围 带符号,-21亿21亿之间,不带符号042亿 超过整型存储范围,会产生溢出的现象

浮点型(float|double|real) 带小数点 科学计数法的写法,e或者E 注意 浮点数是有误差,不要比较两个浮点数的大小

布尔型(bool|boolean) 要么是真,要么是假 true|TRUE:真 false|FALSE:假

标量类型 特点 只能存储单一数据

字符串型(string)

定界符 转义符 花括号{}

转义符

    \n
        换行
    \r
        回车
    \t
        水平制表符
    \\
        \
    \$
        $
    \'
        '
    \"
        "
    源代码中有效果,页面上只显示一个空格

单引号 双引号

heredoc

    <<<名称
代码段;
名称;
    <<<"名称"
代码段;
名称;
    注意
        在结束名称之前不能有任何输出
        heredoc相当于双引号

nowdoc

    <<<'名称'
    代码段;
名称;
    注意
        nowdoc相当于单引号的作用

单引号和双引号的区别 单引号不解析变量,双引号解析变量 单引号只解析'和\,而双引号解析所有的转义符

可以将PHP中的变量括成一个整体来解析

    {$变量名称}
    ${变量名称}

可以对字符串中的指定字符做增删改查的操作 字符串的下标从0开始 根据下标找到对应的字符做操作

echo 输出一个或者多个字符串

var_dump 打印变量的详细信息,可以一次打印一个或者多个变量的详细信息 var_dump($var,....)

print_r() 打印数组的信息 print_r($var)

file

file

file

file

file

file

file

file

file

php中的数据类型转换之自动转换

自动转换(隐式转换) 强制转换(显示转换)

程序会根据上下文环境自动的进行转换

其它类型转换成数值型 true->1 false->0 null->0 字符串如果以非法数值开始,直接转换成0; 如果字符串以合法数值开始,一直取到第一个非法数值结束

其它类型转换成字符串型 数值型直接转换成数值本身 true->1 false->空字符串 null->空字符串 数组->Array 资源->Resource id #数字 对象不能直接转换成字符串

其它类型转换成布尔类型假的有 0->false 0.0->false 空字符串''或者""或者'0'或者"0"->false null->false 空数组array()->false

(变量类型)

变量名称|(integer)

变量名称 字符型 (string)

变量名称 空 (unset)

变量名称 对象 (object)$变量名称

通过系统函数实现 intval(

var)|doubleval(

var) 返回变量转换成字符串的值 boolval($var) 返回变量转换成布尔类型的值

注意 临时转换不改变变量本身的类型

永久转换 settype(

type) 设置变量的类型 gettype($var) 返回变量的类型 注意 不要使用gettype得到变量的类型,因为后续可能返回值会改变

通过变量函数库检测变量的类型

is_*($var)
    检测的结果要么true,要么false
    整型
        is_int()|is_integer()|is_long()
    浮点型
        is_float()|is_double()|is_real()
    字符串型
        is_string()
    布尔类型
        is_bool()
    标量类型
        is_scalar()
    空null
        is_null()
    数组
        is_array()
    对象
        is_object()
    资源
        is_resource()
    是否为数值型或者字符串形式的数值
        is_numeric()

自动转换(隐式转换) 强制转换(显示转换)

print_r() 打印数组的信息 print_r($var)

unset 销毁变量,可以一次销毁一个或者多个,销毁之后变量的值为null unset($var,...)

header语句的作用 header('content-type:text/html;charset=utf-8'); 告诉浏览器以什么编码方式解析什么类型的文档

ord($character) 返回指定字符的ASCII码值

chr($ascii) 根据ASCII码值返回指定的字符

strpos() stripos() strrpos() date_default_timezone_set() date_default_timezone_get() time() date() exit(

msg)

file

file

file

file

file

强制转换(显示转换)

临时转换,永久转换

file

file

file

file

file

file


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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏学院君的专栏

Go 语言网络编程系列(三)—— HTTP 编程篇:客户端如何发起请求

通过前面介绍的 net.Dial 或 net.DialTimeout 函数来访问基于 HTTP 协议的网络服务是完全没有问题的,因为 HTTP 协议是基于 TC...

8120
来自专栏渗透云笔记

后渗透之权限维护 整理

可以看一下对比,创建test用户,net user查看用户是可以看见的,而admin$,因为加了个$符号,用net user命令是看不见的。

10430
来自专栏ChaMd5安全团队

【翻译】看我如何利用PHP的0day黑掉Pornhub并获得2W美刀奖励

在分析了Pornhub使用的平台之后,我们在其网站上检测到了unserialize函数的使用,其中的很多功能点(例如上传图片的地方等等)都受到了影响,例如下面两...

21640
来自专栏Rust语言学习交流

【Rust日报】 2019-10-26 filite:简单,轻巧且独立的 pastebin 文件共享服务

filite是一个简单,轻巧且独立的pastebin,URL shortener和文件共享服务,可以托管文件,重定向链接并存储文本。

7140
来自专栏橙子探索测试

【安全测试】可怕的越权想法

大家提到安全测试会肃然起敬,之前看了一篇越权文章深受启发,于是就产生了下面的一系列想法,纯属个人观点,但不局限于此,如有更好想法的朋友,可留言自己观点。

4910
来自专栏GA小站

3.2.8 、Google Tag Manager实战指南——虚拟页面跟踪单页应用

单页应用就是指浏览器访问站点的时候,使用期间不会重新加载页面,给用户的看到的是所有URL就是一样的,有体验原生APP的感觉,这是一种从Web服务器加载的富客户端...

6430
来自专栏前端小菜鸟

前端路由实现方式

路由:根据不同的url地址,显示不同的页面或者更新局部视图,呈现出来不同的内容。前端路由的实现方式分为服务端,Hash,History三种常见的路由实现方式。

6310
来自专栏Seebug漏洞平台

PHP-fpm 远程代码执行漏洞(CVE-2019-11043)分析

国外安全研究员 Andrew Danau在解决一道 CTF 题目时发现,向目标服务器 URL 发送 %0a 符号时,服务返回异常,疑似存在漏洞。

17930
来自专栏GA小站

3.2.9 、Google Tag Manager实战指南——广告参数传递

通常需要区分不同渠道来源的时候一般会使用UTM标记,其实还有另一种方式可以传递广告参数,这个需要使用GTM,同时配合自定义维度来使用。

10340
来自专栏AI科技评论

如何利用并发性加速你的 python程序(上)

工程师 Jim Anderson 分享了他的经验,他写了一篇关于「通过并发性加快 python 程序的速度」的文章。Jim 有多年的编程经验,并且使用过各种编程...

8620

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励