Blogger Information
Blog 37
fans 2
comment 0
visits 26495
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
0126-数据类型的转换与检测技术,变量与常用声明及使用
世纪天城
Original
694 people have browsed it

php数据类型

tips: 为什么纯php文档,禁止写结束标签
tips: 变量声明规则
必须以”$”为变量名前缀
变量名必须是一个合法的标识符: 英文字母,数字,下划线,且禁止数字开头
合法: $name, $num1, $_id
非法: $user@name, $123abc, $my-email,

数据类型
是数据运算的基本要求,不同类型的数据运算无意义
php数据类型分为三大类: 基本类型,复合类型, 特殊类型

  1. 基本类型
    布尔类型, 字符串, 数值(整数,浮点数)

布尔类型:
有两个返回值true = 1 , false = 0

  1. <?php
  2. $passed = true;
  3. echo $passed;
  4. ?>
  5. 返回值= 1

gettype() 函数用于获取变量的类型。

  1. <?php
  2. echo gettype($passed);
  3. ?>
  4. 返回值= boolean

var_export() 函数用于输出或返回一个变量,以字符串形式表示。

  1. <?php
  2. $passed = '123';
  3. $res = var_export($passed, true);
  4. echo $res;
  5. ?>
  6. 返回值= '123'类型 string

var_dump()可以同时输出变量的值与类型,还可以像echo 一样同时打印多个
var_dump()只用于开发环境,不能用于生产环境

  1. <?php
  2. $passed = '123';
  3. var_dump($passed);
  4. ?>
  5. 返回值= string(3) "123"

数值类型

  1. <?php
  2. $age = 30;
  3. $salary = 4567.89;
  4. var_dump($age);
  5. var_dump($salary); ?>
  6. 返回值= int(30) float(4567.89)

字符串类型:必须要使用”单引号”或”双引号”做为定界符

  1. <?php
  2. $email = "admin@php.cn";
  3. echo '邮箱: ', $email;
  4. ?>
  5. 返回值=email: 邮箱: admin@php.cn

2.复用类型

数组

  1. <?php
  2. // 数组
  3. $res = [1,'admin','123456'];
  4. // 数组索引默认从0开始进行递增
  5. echo 'id = ', $res[0];
  6. echo 'name = ', $res[1];
  7. echo 'pwd = ', $res[2];
  8. ?>

返回值如下:
id = 1
name = admin
pwd = 123456
$res= ‘admin’

对象

写个容器将上面的代码单元进行封装,这个容器就是:对象
使用对象的本质是代码复用
对象模板: 类

  1. <?php class a {
  2. // 变量=>属性
  3. private $a = 1;
  4. private $b = 2;
  5. // 函数 => 方法
  6. public function sum() {
  7. return $this->a . ' + ' . $this->b . ' = ' . ($this->a + $this->b);
  8. }
  9. }
  10. $obj = new a();
  11. echo $obj->sum();
  12. ?>

返回值如下: 1 + 2 = 3

检测技术

临时转换:(int),(string),(array),(object)
自动转换:根据操作符对操作数的类型要求进行
强制转换: settype()
数值类型(int)

  1. <?php $id =1; var_dump((int)$id); ?>
  2. 返回类型: int(1)

字符串类型(string)

  1. <?php $name = 123; var_dump((string)$name); ?>
  2. 返回类型: string(3) "123"

数组类型(array)

  1. <?php $name = '123'; var_dump((array)$name); ?>
  2. 返回类型: array(1) { [0]=> string(1) "3" }

可以用数组的方式访问

  1. <?php $name = '123'; var_dump((array)$name[2]); ?>
  2. 返回类型: array(1) { [0]=> string(1) "3" }

对象类型(object)

  1. <?php $obj = new class{ }; var_dump((object)$obj); ?>
  2. 返回类型: object(class@anonymous)#1 (0) { }

类型检测
标量:is_int(),is_string(),is_bool()
标量:理解为”单值”,例如: 100, ‘php’, true

is_int():数值型检测

  1. <?php $id = 123; echo is_int($id)?'数值型':'不是数值型'; ?>
  2. 返回: 数值型

is_string()字符串检测

  1. <?php $name = 'php'; echo is_string($name)?'字符串型':'不是字符串型'; ?>返回: 字符串型

is_bool()检测

  1. <?php echo is_bool(true); ?>
  2. 返回: 布尔型

复合:数组和对象is_array(),is_object()

is_array()数组检测

  1. <?php $arr = [1,2,3]; echo is_array($arr)?'数组类型':'不是数组型'; ?>
  2. 返回: 数组类型

is_object()对象型检测

  1. <?php $obj = new class{}; echo is_object($obj)?'对象型':'不是对象'; ?>
  2. 返回: 对象型

特殊:is_null(),is_resource()

is_scalar(): 检测变量类型是否是标量
标量: 理解为”单值”, 100, ‘php’, true
不是标量: [1,2,3], new class{}

  1. <?php var_export(is_scalar(1)); ?> true

变量与常用

仅允许使用: 英文字母(a-z,A-Z),数字(0-9),下划线(_)或他们的组合 不允许使用数字开头 必须使用”$”美元符为前缀 严格区分大小写 驼峰命名法

  1. 变量声明

变量除了要满足以上的要求外,还有特殊性
变量必须要用”$”为前缀例如: $name
严格区分大小写例如:$name 与 $NAME这就是完全是两个不同的变量

  1. 变量赋值

    1. $color = 'red';

    引用赋值

引用赋值其实就是给原始变量起一个别名,并未创建新变量
只需在变量前加上&就可以了

  1. <?php $name = '张三'; $name1 = &$name; $name ='李四'; echo $name1 ?>
  2. 这是输出的是: 李四
  1. 预定义变量

超全局变量: 数组,任何地方都可以访问,不受作用域限制
$GLOBALS: 引用全局作用域中可用的全部变量
$_SERVER: 服务器和执行环境信息
$_GET :通过 URL 参数(又叫 query string)传递给当前脚本的变量的数组
$_POST:当 HTTP POST 请求的 Content-Type 是 application/x-www-form-urlencoded 或 multipart/form-data 时,会将变量以关联数组形式传入当前脚本
$_FILES:通过 HTTP POST 方式上传到当前脚本的项目的数组
$_COOKIE:通过 HTTP Cookies 方式传递给当前脚本的变量的数组
$_SESSION:当前脚本可用 SESSION 变量的数组
$_REQUEST: 默认情况下包含了 $_GET,$_POST 和 $_COOKIE 的数组
$_ENV: 通过环境方式传递给当前脚本的变量的数组

$GLOBALS超全局变量使用方法

  1. <?php
  2. $name ='admin';
  3. $pwd ='123456';
  4. printf('name = %s, pwd = %s', $GLOBALS['name'], $GLOBALS['pwd']);
  5. ?>
  6. 输出: name = admin, pwd = 123456

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

‘IP: ‘. $_SERVER[‘REMOTE_ADDR’];
‘浏览器: ‘. $_SERVER[‘HTTP_USER_AGENT’];
‘脚本绝对路径 = ‘. $_SERVER[‘SCRIPT_FILENAME’];
‘脚本相对路径 = ‘. $_SERVER[‘SCRIPT_NAME’];
‘当前脚本名称 = ‘. $_SERVER[‘PHP_SELF’];
‘查询字符串 : ‘. $_SERVER[‘QUERY_STRING’];
‘PATH_INFO = ‘. $_SERVER[‘PATH_INFO’];
‘URI: ‘ . $_SERVER[‘REQUEST_URI’];
$_GET[‘id’];
$_POST[‘name’];

常量
用 define(): 函数;和 const: 关键字;来定义常量

是固定的值,一旦创建不可更新,不可删除
常量不是变量,前面不要加” $ “
常量推荐全部大写,多个单词之间用下划线连接

1.define()函数

  1. <?php
  2. define('PATH',$_SERVER['SCRIPT_FILENAME']);
  3. echo PATH; ?>
  4. 输出当前脚本的绝对路径: D:/phpstudy_pro/WWW/14php/a/php/view/5.php

2.const 关键字

const 只支持字面量,不允许表达式

  1. <?php
  2. const NATION = '中国';
  3. echo '国籍:' .NATION;
  4. ?>
  5. 输出: 国籍:中国
Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post