PHP  __数据结构类型

一、php 中的八种数据类型

  1.四种标量类型

    Boolean (布尔类型): true  or  false,多用于条件判断。

    实例:

<?php
$x = "Hello world!";
echo $x;
echo "<br>";
$x = 'Hello world!';
echo $x;

    Int(整数类型) : 整数是没有小数的数字。

             整数规则:整数必须有至少一个数字(0-9);整数不能包含逗号或空格;整数不能有小数点;整数正负均可;可以用三种格式规定整数:十进制、十六进制(前缀是 0x)或八进制(前

             缀是 0)。

    实例:

<?php
$x = 5985;
var_dump($x);
echo "<br>";
$x = -345; // 负数
var_dump($x);
echo "<br>";
$x = 0x8C; // 十六进制数
var_dump($x);
echo "<br>";
$x = 047; // 八进制数
var_dump($x);

    String (字符串型):字符串是字符序列,使用引号定义,也可以是使用定界符定义

    实例:

<?php
$x = "Hello world!";
echo $x;
echo "<br>";
$x = 'Hello world!';
echo $x;

     Float (浮点类型): 就是有小数点或指数形式的数值。但不要进行浮点型数据的比较。

    实例:

<?php
$x = 10.365;
var_dump($x);
echo "<br>";
$x = 2.4e3;
var_dump($x);
echo "<br>";
$x = 8E-5;
var_dump($x);

  2.两种符合类型

    Array(数组类型):实现了单个变量可以存储多个值的情况;数组分为索引式(索引为数值组成)和关联式(索引为字符串组成)两种数组。

    实例:

<?php
$cars=array("Volvo","BMW","SAAB");
var_dump($cars);

     Object(对象类型):对象是存储数据和有关如何处理数据的信息的数据类型。在 PHP 中,必须明确地声明对象。首先我们必须声明对象的类。对此,我们使用 class 关键词。类是包含属性和方法的结构。然后我们在对

                象类中定义数据类型,然后在该类的实例中使用此数据类型。

    实例:

<?php
class Car
{
var $color;
function Car($color="green") {
$this->color = $color;
}
function what_color() {
return $this->color;
}
}

    3.两种特殊类型

    Resource (资源类型)

    Null (空型):特殊的 NULL 值表示变量无值。NULL 是数据类型 NULL 唯一可能的值。NULL 值标示变量是否为空。也用于区分空字符串与空值数据库。可以通过把值设置为 NULL,将变量清空。

    实例:

<?php
$x="Hello world!";
$x=null;
var_dump($x);

二、PHP 中变量为 null 的情况

<?php
//以下几种情况变量的值为null空 //1.变量赋值为null时,打印为空
$a = null; //2.被销毁的变量,打印时为空
$b = 100;
unset($b);
var_dump($b); //3.直接打印一个不存在的变量时,也为空
var_dump($c);

三、PHP 中数据类型自动转换为 false 情况

<?php
//自动类型转换,自动转换为布尔型false的情况 $a = false; //布尔型
$a = 0; //整型
$a = 0.0;  //浮点型
$a = "";   //字符串型
$a = "0";
$a = array(); //数组型
$a = null; //空型

四、PHP 中数据类型自动转换为数值

<?php
// 自动转换为数值的情况
$num1 = true;
$num2 = 10;
var_dump($num1 + $num2); // 11 $num1 = "1234abcd";
$num2 = 1234;
var_dump($num1 + $num2); // 2468 $num1 = null;
$num2 = 10;
var_dump($num1 * $num2);  // 0

五、强制类型转换

<?php
/*强制类型转换*/ //改变了原变量的类型
$a = 0;
var_dump($a);
settype($a,"boolean");
var_dump($a); //不改变原变量类型的强制类型转换
$b = "canglaoshi";
$c = (integer) $b;
var_dump($c);
var_dump($b);

六、PHP 中一些有助于调试代码的函数

     gettype( ) :获取某变量的数据类型

     isset ( )  :判断某变量是否被设定(存在)

     empty( )   :判断某变量是否为空(不存在)

     is_bool( ) :判断某变量数据类型是否为布尔型

     is_String( ):判断某变量数据类型是否为字符串型

        。。。

     echo是PHP语句,print和print_r是函数,语句没有返回值,函数可以有返回值(即便没有用)

     echo   : PHP 语法,以字符串形式输出结果,不能对数组、对象操作  

     print   : 只能打印出简单类型变量的值(如int,string) ,输出结果速度较 echo 要慢

     print_r  : 可以打印出复杂类型变量的值(如数组,对象),仅为结果。

     var_dump:  此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。

七、PHP 中的引用变量、可变变量以及常量

  实例:

<?php
//可变变量
$a = "b";
$$a = "c";
$$$a = "d";
$$$$a = "e";
echo $d."<br/>"; // e //引用变量
$a = "hello world!";
$b = &$a;
$b = "你好 世界!";
unset($a);
echo $b; // hello world //定义一个常量
define('NAME','haibo');
define('SEX','women');
define('AGE','18'); //使用一个常量
echo NAME; //常量信息不能被覆盖!
// define('NAME','hongze'); //常量定义的内容不能被销毁
// unset(NAME); //判断某个常量是否被定义
var_dump(defined('CLASS')); // false

八、PHP中已定义的系统常量

  样例:

<?php
//系统定义的常量
echo "当前系统:".PHP_OS."<br/>";
echo "PHP的版本:".PHP_VERSION."<br/>";
echo "当前文件名:".__FILE__."<br/>";
echo "当前行号:".__LINE__."<br/>";

PHP学习笔记(二) ---- PHP数据类型的更多相关文章

  1. Typescript 学习笔记二:数据类型

    中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...

  2. Java学习笔记二:数据类型II

    GitHub代码练习地址:https://github.com/Neo-ML/JavaPractice/blob/master/Intpractice3.java 一  Java中的数据类型 Java ...

  3. python学习笔记(二):python数据类型

    上一篇博客写了python的入门和简单流程控制,这次写python的数据类型和各种数据类型的内置方法.一.数据类型是什么鬼?计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各 ...

  4. 学习笔记(二)--->《Java 8编程官方参考教程(第9版).pdf》:第七章到九章学习笔记

    注:本文声明事项. 本博文整理者:刘军 本博文出自于: <Java8 编程官方参考教程>一书 声明:1:转载请标注出处.本文不得作为商业活动.若有违本之,则本人不负法律责任.违法者自负一切 ...

  5. Go语言学习笔记二: 变量

    Go语言学习笔记二: 变量 今天又学了一招如何查看go的版本的命令:go version.另外上一个笔记中的代码还可以使用go run hello.go来运行,只是这种方式不会生成exe文件. 定义变 ...

  6. JDBC学习笔记二

    JDBC学习笔记二 4.execute()方法执行SQL语句 execute几乎可以执行任何SQL语句,当execute执行过SQL语句之后会返回一个布尔类型的值,代表是否返回了ResultSet对象 ...

  7. tensorflow学习笔记二:入门基础 好教程 可用

    http://www.cnblogs.com/denny402/p/5852083.html tensorflow学习笔记二:入门基础   TensorFlow用张量这种数据结构来表示所有的数据.用一 ...

  8. WPF的Binding学习笔记(二)

    原文: http://www.cnblogs.com/pasoraku/archive/2012/10/25/2738428.htmlWPF的Binding学习笔记(二) 上次学了点点Binding的 ...

  9. AJax 学习笔记二(onreadystatechange的作用)

    AJax 学习笔记二(onreadystatechange的作用) 当发送一个请求后,客户端无法确定什么时候会完成这个请求,所以需要用事件机制来捕获请求的状态XMLHttpRequest对象提供了on ...

  10. [Firefly引擎][学习笔记二][已完结]卡牌游戏开发模型的设计

    源地址:http://bbs.9miao.com/thread-44603-1-1.html 在此补充一下Socket的验证机制:socket登陆验证.会采用session会话超时的机制做心跳接口验证 ...

随机推荐

  1. Oracle递归查询(start with)

    写代码时碰到要弄清楚Oracle的role之间的传递关系,就是有role A的话,可以通过grant A to B,把A赋予给B,又通过grant B to C .那我想知道所有role中,有哪些ro ...

  2. 关于Mysql数据库查询数据大小写的问题汇总

    前天在问答区看到一个童鞋对于mysql中大小写问题不熟悉,在回复他后再次汇总梳理如下: mysql中大小写问题主要有以下两种: A.表名区分大小写 ower_case_table_names 是表名区 ...

  3. P3698 [CQOI2017]小Q的棋盘

    题目链接 题意分析 首先 我们肯定会贪心的走从根节点到叶子结点最长的一条链 首先没有过剩的就好办了 但是有的话 我们就一边往下走 一边走分支 分支上每一个点平均走过两次 所以我们把剩下的除以\(2\) ...

  4. Codeforces Global Round 2 部分题解

    F.Niyaz and Small Degrees 挺sb的一题,为什么比赛时只过了4个呢 考虑当\(x\)固定的时候怎么做.显然可以树形DP:设\(f_{u,i=0/1}\)表示只考虑\(u\)子树 ...

  5. 在微信移动端input file拍照或从相册选择照片后会自动刷新页面退回到一开始网站进入的页面

    <input type="file" accept="image/*"/> 调用打开摄像头后,聚焦后拍照,点击确认,这时页面会出现刷新动作,然后回退 ...

  6. 何为Web App,何为Hybird App

    这些概念听起来很火,当下也很流行,真正理解起来却并非易事.如果让我来全面的解释Web App和Hybird App,我觉得还有些困难. 这篇文章只是我深入了解移动领域开发过程中的不断整理和总结,其中涉 ...

  7. pull强制覆盖本地

    今天我总结的是在项目中经常用到的Git命令,上传和下拉文件. 当然在进行上传和下拉操作之前,你首先要做的就是将本地和Git库连接起来. 连接命令: git remote add origin + 你G ...

  8. shiro学习笔记_0400_自定义realm实现身份认证

     自定义Realm实现身份认证 先来看下Realm的类继承关系: Realm接口有三个方法,最重要的是第三个方法: a) String getName():返回此realm的名字 b) boolean ...

  9. Javac的命令(-Xlint)

    在OptionName类中的枚举定义如下: XLINT("-Xlint"), XLINT_CUSTOM("-Xlint:"), -Xlint     Enabl ...

  10. python-poll实现异步IO

    #!usr/bin/python from socket import * from select import * from time import ctime s=socket() s.bind( ...