当前位置: 首页 > news >正文

PHP变量

三大类型:

  • 标量:字符串string  整型integer  浮点型float  布尔型boolean
  • 复合:数组array    对象object
  • 特殊:NULL  资源resource

字符串

 定义方式:

  • 单引号 :不能解释变量,不能解释转义字符(可转义 \  ' ),效率更高
  • 双引号  : 可以解释变量、转义字符,可使用特殊字符{}来包含变量
  • heredoc和newdoc:专门定义较长较大的字符串   

$str = <<< DOC
fsdfsdfsadfasdfdfs\n
dsfasdf
DOC;复制代码

newdoc就是在DOC加上单引号,DOC标识符可以任意定义。

$str = <<< 'ABC'
fsdfsdfsadfasdfdfs
dsfasdf
ABC;复制代码

heredoc可以解释变量、转义字符,newdoc都不可以,跟单双引号一样

浮点型

就是小数,注意!浮点型不能做比较运算

(0.1+0.7) == 0.8      //false;复制代码

因为计算机要转为二进制运算,十进制小数转二进制(乘以2,然后取整部分),可能丢失精度。

布尔型

只有两个值 true false  不区分大小写

true === TRUE复制代码

注意点  下面七种类型比较为false

var_dump('' == false);     //truevar_dump('0' == false);    //truevar_dump(0 == false);      //truevar_dump(0.0 ==false);     //truevar_dump(array() == false);//truevar_dump(false == false);  //truevar_dump(null == false);   //true

var_dump('0.0' == false);  //false复制代码

数组

定义方式

$arr = []; 
$arr = array();

['1','2','3']           //普通数组
[1=>'1',2=>'2',3=>'3']  //索引数组
['a' => 'aa','b'=>'bb'] //关联数组
[
    ['1','2','3'],
    ['2','3','4']   

]                        //多维数组,数组嵌套复制代码

PHP的有超全局数组

$GLOBALS

$_COOKIE

$_SESSION

$_SERVER

$_ENV

$_FILES

$_POST

$_GET

$_REQUEST

其中

$_SERVER['SERVER_ADDR']   服务器地址

$_SERVER['REMOTE_ADDR'] 客户端地址

$_SERVER['SERVER_PORT']  服务器端品

$_SERVER['REMOTE_PORT'] 客户端端口

$_SERVER['REQUEST_TIME'] 请求时间

$_SERVER['SERVER_NAME'] 服务器名称

$_SERVER['QUERY_STRING'] 请求参数?后面的

$_SERVER['HTTP_REFERER']  上一个页面的url


NULL

定义

  • 直接赋值NULL
  • 未赋值的变量
  • unset销毁的变量



相关文章:

  • AdTime:多屏互动 进化中的大数据营销
  • Unity2018新功能抢鲜 | Package Manager
  • 快递业频爆黑料,不如让机器人送货吧!
  • Java 基础 之 for 循环
  • BIND9 DoS漏洞CVE-2016-8864 绿盟科技发布技术分析与防护方案 北京有1435台设备受影响...
  • yum更新出错-解决
  • linux使用wget下载jdk并配置
  • 虚假信息成物联网“毒瘤”
  • 今天的考核题目: 你知道React和Vue的区别吗? skr,skr
  • 网易研究院汪源:MySQL或成为最大黑马
  • mysql_config_editor
  • IEnumerable VS IQueryable
  • 【注解】Annotation Target ElementType
  • docker compose 服务启动顺序控制
  • 《中国人工智能学会通讯》——1.39 结 论
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • [译] 怎样写一个基础的编译器
  • express + mock 让前后台并行开发
  • extjs4学习之配置
  • IE报vuex requires a Promise polyfill in this browser问题解决
  • javascript面向对象之创建对象
  • jquery cookie
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • PHP CLI应用的调试原理
  • quasar-framework cnodejs社区
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 构建二叉树进行数值数组的去重及优化
  • 区块链共识机制优缺点对比都是什么
  • 人脸识别最新开发经验demo
  • 详解移动APP与web APP的区别
  • 学习HTTP相关知识笔记
  • 学习笔记:对象,原型和继承(1)
  • 学习使用ExpressJS 4.0中的新Router
  • 《天龙八部3D》Unity技术方案揭秘
  • raise 与 raise ... from 的区别
  • ​​​​​​​​​​​​​​Γ函数
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • $L^p$ 调和函数恒为零
  • (20050108)又读《平凡的世界》
  • (附源码)ssm高校实验室 毕业设计 800008
  • (黑客游戏)HackTheGame1.21 过关攻略
  • (力扣)1314.矩阵区域和
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • .NET DevOps 接入指南 | 1. GitLab 安装
  • .net mvc 获取url中controller和action
  • .net on S60 ---- Net60 1.1发布 支持VS2008以及新的特性
  • .NET 动态调用WebService + WSE + UsernameToken
  • .Net 路由处理厉害了
  • .NET/C# 获取一个正在运行的进程的命令行参数
  • .NET:自动将请求参数绑定到ASPX、ASHX和MVC(菜鸟必看)
  • @JsonFormat与@DateTimeFormat注解的使用
  • @Transactional类内部访问失效原因详解
  • [20171106]配置客户端连接注意.txt
  • [BZOJ1089][SCOI2003]严格n元树(递推+高精度)
  • [BZOJ3757] 苹果树