$ 定义变量;

  变量来源数学是计算机语言中能存储计算结果或能表示值抽象概念。变量可以通过变量名访问。在指令式语言中,变量通常是可变的。

  php 中不需要任何关键字定义变量(赋值,跟Java不同,Java定义变量需要指定变量类型)

  php 使用 $ 定义变量

  定义:在系统中增加对应的变量名字(内存)

  赋值:可以将数据赋值给变量(可以在定义的同时完成)

  可以通过变量名 访问存储的数据

  可以将变量从内存中删除

$a = 10;

echo 访问输出变量 ;

echo a;

预定义变量

  预定于变量:提前定义的变量,系统定义的变量,存储许多需要用到的数据(预定义变量都是数组)  

    $GLOBALS — 引用全局作用域中可用的全部变量

    $_SERVER — 服务器和执行环境信息

    $_GET — HTTP GET 变量

    $_POST — HTTP POST 变量

    $_FILES — HTTP 文件上传变量

    $_REQUEST — HTTP Request 变量

    $_SESSION — Session 变量

    $_ENV — 环境变量

    $_COOKIE — HTTP Cookies

    $php_errormsg — 前一个错误信息

    $HTTP_RAW_POST_DATA — 原生POST数据

    $http_response_header — HTTP 响应头

  以下预定义变量只在命令行执行的时候生效

    $argc — 传递给脚本的参数数目

    $argv — 传递给脚本的参数数组

可变变量

  如果一个变量保存的值刚好是另外一个变量的名字,那么可以直接通过访问一个变量得到另外一个变量的值:在变量前面再多加一个$符号

  $a = 'b';

  $b = 'bb';

  $$a →

    1.找到$a解析结果:b

    2.将前面的$符号与结果b绑定:$b

    3.然后解析

引用传递:将变量保存的值所在的内存地址,传递给另外一个变量:两个变量指向同一块内存空间(连个变量是同一个值)

  $新变量 = &$老变量;

const 常量名称 = 值;或 define('常量名','常量值');

  不需要使用 $ 符号

  define 和 const 定义的常量是有区别:在访问权限区别

const CL = 100;

系统

  在php中还有一些特殊的常量,他们有双下划线开始+常量名+双下划线结束,这种常量称之为系统魔术常量:魔术常量的值通常会跟着环境变化,但是用户改变不了

  __DIR__ 当前被执行的脚本所在电脑的绝对路径

  __FILE__ 当前被执行的脚本所在电脑的绝对路径(带自己文件的名字)

  __LINE__ 当前所属的行数

  __NAMESPACE__ 当前所属的命名空间

  __CLASS__ 当前所属的类

  __METHOD__ 当前所属的方法

--------------------------------------------------------------------

数据类型

  data type 在php中值的是存储的数据本身的类型,而不是变量的类型

  在php中将数据扥为三大类八小类:

    简单数据类型:4小类

      整型: int/integer 系统分配4个字节存储,表示整数型

      浮点型: float/double itong分配8个字节存储,表示小数

      字符: srting 系统根据长度分配

      布尔:bool/boolean 只有 true 和 false ,真与假

    复合数据类型:2小类

      对象: object 存放对象

      数组: array 存储多个数据

    特殊数据类型:2小类

      资源类型: resource 存放资源数据(php 外部数据,如数据库,文件)

      空类型:NULL

强制转换规则:在变量之前增加一个括号(),然后里面写上转换的类型例: int,其中NULL类型需要用unset()

注意当下列情况转换为 Boolean 时,其值为 FALSE
    布尔值 FALSE 本身
    整型值 0(零)
    浮点型值 0.0(零)
    空字符串,以及字符串 "0"
    不包括任何元素的数组
    特殊类型 NULL(包括尚未赋值的变量)
    从空标记生成的 SimpleXML 对象

一组函数可以用来获取以及设定数据(变量)的类型

  gettype(变量名):获取类型,得到的是给类型对应的字符串

  settype(变量名,类型):设定数据类型:与强制转换不同

  1.强制转换(类型)变量名,是对数据值赋值的内容进行处理(不会处理实际存储的内容)

  2.settype 会直接改变数据本身

// 判断数据类型
$a = 'abc1.1.1';
var_dump(is_int($a)); // false
var_dump(is_srting($a)); // true
echo gettype($a);
// 设置类型
$b = '1.1.1abc';
var_dump(settype($b,'int'));
echo gettype($b),$b;

进制转换

  Decbin():十进制转二进制

  Decoct():十进制转八进制

  Dechex(): 十进制转十六进制

  Bindec(): 二进制转十进制

-----------------------------------------------

var_dump() 函数可以查看表达式的值和类型
gettype() 函数用于检测变量类型
is_ 加类型,如 is_int(),is_array() 等,判断变量是否为该类型

--------------------------------------------------------------------------------------
全局变量通常使用关键字 global 来声明

    $a = 1;
$b = 2; function sum()
{
global $a, $b;
$b = $a + $b;
} sum();
echo $b;

常量是一个简单值的标识符,在脚本执行期间该值不能改变,通常使用全大写,PHP 中常量用 define() 函数或 const 关键字来定义,PHP 还包含一些预定义常量如 __LINE__、__FILE__ 等。
    注意使用 const 只能在类外部定义,且必须处于最顶端的作用区域,因为用此方法是在编译时定义的。这就意味着不能在函数内,循环内以及 if 语句之内用 const 来定义常量。
    

有八个魔术常量它们的值随着它们在代码中的位置改变而改变。例如 __LINE__ 的值就依赖于它在脚本中所处的行来决定,这些特殊的常量不区分大小写。
    __LINE__,文件中的当前行号。
    __FILE__,文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。
    __DIR__,文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。
    __FUNCTION__,函数名称,返回该函数被定义时的名字。
    __CLASS__,类的名称,返回该类被定义时的名字。
    __TRAIT__,Trait 的名字(PHP 5.4.0 新加)。自 PHP 5.4 起此常量返回 trait 被定义时的名字(区分大小写)。Trait 名包括其被声明的作用区域(例如 Foo\Bar)。
    __METHOD__,类的方法名,返回该方法被定义时的名字(区分大小写)。
    __NAMESPACE__,当前命名空间的名称(区分大小写)

 

php 变量和数据类型的更多相关文章

  1. [C语言入门笔记]变量与数据类型

    变量与数据类型 什么是变量? 变量是一个变化的量 是内存中的一个空间 变量的定义方法是什么? 数据类型 变量名 = 值; 数据类型有哪些? 整型int 浮点型float double 字符型char ...

  2. JS魔法堂:函数重载 之 获取变量的数据类型

    Brief 有时我们需要根据入参的数据类型来决定调用哪个函数实现,就是说所谓的函数重载(function overloading).因为JS没有内置函数重载的特性,正好给机会我们思考和实现一套这样的机 ...

  3. Python变量、数据类型6

    1.Python变量 变量,即代表某个value的名字. 变量的值存储在内存中,这意味着在创建变量时会在内存中开辟一个空间. !!!即值并没有保存在变量中,它们保存在计算机内存的深处,被变量引用.所以 ...

  4. JS代码放置位置、变量与数据类型、运算符与逻辑表达运算符

    内容简要: 1.JS代码放置位置的问题: 2.变量与数据类型: 3.运算符与逻辑表达式的运算符   我的位置 全局问题:为何在网页推荐位置(一般在<head></head>内部 ...

  5. C#变量与数据类型

    数据类型: 整型:int short long byte 小数:double float decimal 布尔:bool 字符:char 定义变量: 数据类型 变量名 [= 值]; 变量名的命名规则: ...

  6. isa class 帮助确定对象或变量的数据类型

    isa class 帮助确定对象或变量的数据类型

  7. Java基础复习之一篇:关健字,标识符,注释,常量,进制转换,变量,数据类型,数据类型转换

    1.关健字 1.1.被Java语言赋予特定意义的单词(如:class,interface,public ,static) 1.2.全部是小写 1.3.注意事项(goto和const作为关健字保留起来) ...

  8. 《JavaScript 闯关记》之变量和数据类型

    当程序需要将值保存起来以备将来使用时,便将其赋值给一个变量,值的类型称作数据类型. 变量 JavaScript 的变量是松散类型的,所谓松散类型就是可以用来保存任何类型的数据.换句话说,每个变量仅仅是 ...

  9. php什么是变量的数据类型

    什么是变量的数据类型 在变量中,由于变量占用的空间单元不一样(占的地盘大小不一样),也分成几种数据类型,就像超市商品的包装袋,有几种不同类型,不同的商品使用不同的包装袋.我们可以通过使用“memory ...

  10. type,isinstance判断一个变量的数据类型

    type,isinstance判断一个变量的数据类型 import types type(x) is types.IntType # 判断是否int 类型 type(x) is types.Strin ...

随机推荐

  1. LaTeX Vscode 配置

    安装:https://www.latexstudio.net/archives/51801.html LaTeX 安装 & 宏包升级 & 入门:https://blog.csdn.ne ...

  2. Serverless 工程实践 | Serverless 应用优化与调试秘诀

    作者|刘宇   前言:本文将以阿里云函数计算为例,提供了在线调试.本地调试等多种应用优化与调试方案. Serverless 应用调试秘诀 在应用开发过程中,或者应用开发完成,所执行结果不符合预期时,我 ...

  3. storm卡顿修改

    ​ 最近的webstorm越来越卡了,有时候甚至会弹出 Out of memory的窗口,提示要设置 xmx的值, 8G内存跑你这小软件还会不够用???要内存?给你,看你还会不会卡成翔! 于是果断给x ...

  4. 初探webpack之从零搭建Vue开发环境

    初探webpack之搭建Vue开发环境 平时我们可以用vue-cli很方便地搭建Vue的开发环境,vue-cli确实是个好东西,让我们不需要关心webpack等一些繁杂的配置,然后直接开始写业务代码, ...

  5. 【错误分析】NX error status: 32

    在进行NX 制图里面的表格注释合并单元格时,总是报错NX error status: 32,找了很久都不知道问题所在. 报错提示如下: NXOpen.NXException: NX error sta ...

  6. wget命令8种实用用法

    大家好,我是良许. wget 是一个可以从网络上下载文件的免费实用程序,它的工作原理是从 Internet 上获取数据,并将其保存到本地文件中或显示在你的终端上. 这实际上也是大家所使用的浏览器所做的 ...

  7. Java:反射小记

    Java:反射小记 对 Java 中的 反射,做一个微不足道的小小小小记 概念 Java 反射指的是在 Java 程序运行状态中,对于任何一个类,都可以获得这个类的所有属性和方法:对于给定的一个对象, ...

  8. [对对子队]会议记录4.20(Scrum Meeting11)

    今天已完成的工作 何瑞 ​ 工作内容:搭建第三关,添加了运行指令标识 ​ 相关issue:搭建关卡2.3 ​ 相关签入:4.20签入1 4.20签入2 吴昭邦 ​ 工作内容:搭建第三关 ​ 相关iss ...

  9. 【二食堂】Alpha - Scrum Meeting 5

    Scrum Meeting 5 例会时间:4.15 12:30 - 13:00 进度情况 组员 昨日进度 今日任务 李健 1. 主页搭建结束issue2. 与后端协商确定接口的设计3. 查找文本区域功 ...

  10. 并发编程从零开始(六)-BlockingDeque+CopyOnWrite

    并发编程从零开始(六)-BlockingDeque+CopyOnWrite 5.2 BlockingDeque BlockingDeque定义了一个阻塞的双端队列接口: 该接口继承了BlockingQ ...