php标签,php变量,php数据类型与数据类型转换
1.php标签php程序 以 \<?php 开头
php程序 以 \?> 结尾
; 语句分隔符 代表当前语句的结束
// php单行注释
/多行注释/
代码缩进 提高代码的可读性
打印函数(echo,print var_dump,print_r ……);
拼接使用. -> 通过 . 拼接的数据都会变成字符串(String) 类型
程序是纯php代码可以不用写结束标签 否则(代码中存在其他代码)则需要完整的写出php脚本<?php ?>
添加注释的代码不会被程序执行,作用 说明注释内容的信息 作用 方便后期维护与逻辑的梳理
// 单行注释
// 只存在php程序 可以不用 php结束标签
echo'2020-7-3';
functionsum($a,$b){
return"{$a} + {$b} = ".($a+$b);
}
// 调用函数 sum 并打印函数返回结果
echo sum(10,20);
/*多行注释
此脚本存在html标签 需要在适当的地方书写php结束标签
*/
echo'2020-7-3';
?>
12312
7.打印语句
// echo 可以打印多个表达式,并且识别html标签。但 echo 没有返回值。
$username='盘古';
$hobby=['唱','跳','rap','篮球'];
echo123,'
',$username;
// print 只能打印单个表达式 如果非要打印多个变量使用 . 拼接 print()有返回值。
print($username);
print('hello').$username;
// var_dump() 获取数据的详细信息(变量类型,长度,值);
// ps: 1.utf-8编码类型中 中文汉字一般占3个字符 2.gbk编码中一般占2个字符
var_dump(123.5);
// float(123.5)
var_dump($username);
// string(6) "盘古"
// var_export(); 输出或返回一个变量的字符串表示(源代码)
// 1.直接输出 结果
var_export($hobby);
// 2.也可以通过设置 var_export()的第二个参数为True 从而返回变量的表示
$h=var_export($hobby,true);
print($h);
2.变量变量是临时存储数据的容器
变量是实现代码复用的有效途径
变量的命名
php变量名必须以 ‘$’ 开头
php变量名不能以数字开头
变量名允许以 ‘_’开头
变量名不能包含特殊字符(@ # & * …..)
*变量名(变量标识符):仅允许字母,下划线,数字组合,并且不能以数字开头
*不推荐命名规则: 使用中文 无意义命名
// php 变量区分大小写 函数不区分大小写
// javascript 变量和函数都区分大小写
// 变量区分大小写
$username='admin';
$userName='root';
print($username);
print($userName);
// admin root
// 函数 类名不区分大小写(内置函数,自定义函数);
// 例如:
echo strtoupper($username);
echo STRTOUPPER($username);
// ADMIN ADMIN
functionupName($name){
echo strtoupper($name);
}
upName($username);
UPNAME($username);
// ADMIN ADMIN
变量的动态: 变量的类型随值而变化
$var=123;
var_dump($var);
// int(123)
// 此时修改$var的值为 'admin'
$var='admin';
var_dump($var);
// string(5) "admin"
// $var 的类型由 int类型 变成了 string类型
// php 变量的类型由值决定 和javascript一样
变量的赋值(传递):值传递和引用传递
值传递(默认的方式)
```php
$price1 = 99;
$price2 = $price1;
// 更新 price2 的值
$price2 = 199;
echo ‘$price1->’,$price1,’
‘;
echo ‘$price2->’,$price2,’
‘;
// $price1->99
// $price2->199
// 值传递 只是将 一个变量的值 复制一份 并重新给另一个变量赋值 之后两个变量就没有关系
+引用传递
```php
// 引用传递
$name1 = 89;
// 在等号的右边(右值)前面加上&(取地址符,)
$name2 = &$name1;
$name2 = 288;
echo '$name1->'.$name1.'
';
echo '$name2->'.$name2.'
';
// $name1->288
// $name2->288
// name1和name2同步更新
// 引用传递 将一个变量的内存地址 赋值给另一个变量 此时两个变量指向同一个内存地址 每次修改变量值 并不是修改的内存地址 而是修改的值 所以两个变量的值都会发生变化可变变量
$var='email';
echo $email;
//通过可变变量 用代码生成变量名使用
变量的检测和删除
规定不同的错误级别报告
// 关闭错误报告
error_reporting(0);
// 报告 runtime 错误
error_reporting(E_ERROR|E_WARNING|E_PARSE);
// 报告所有错误
error_reporting(E_ALL);
// 等同于 error_reporting(E_ALL);
ini_set("error_reporting",E_ALL);
// 报告 E_NOTICE 之外的所有错误
error_reporting(E_ALL&~E_NOTICE);
变量检测 isset();
isset() 判断变量是否存在且值不为null
如果变量不存在 返回 false
如果变量存在但值为 null 返回false
如果变量存在且值不为 null 返回 true
// var_dump(isset($name)); 判断变量是否存在且值不为null
//
var_dump(isset($name));
// 打印 bool(false) 说明变量为null
$name=null;
var_dump(isset($name));
// 打印 bool(true) 说明变量存在且不为 null
if(isset($name)){
echo'变量存在且值为:'.$name;
}else{
echo'变量未定义';
}
// 程序进入了 else 此时虽然变量 $name 存在 但它的值为 null 返回了 false
变量删除 unset()
unset() 是一个函数 但是它没有返回值(不能用于 判断语句)
判断值是否为空 empty()
empty() 判断变量是否为空或者不存在
如果变量不存在 返回 true
如果变量值为空 ‘’, 返回 true
如果变量存在 且值不为空 返回 false
$var='';
if(empty($var)){
echo'返回true';
}else{
echo'返回false'
}
// 进入了 if 语句 因为此时 变量为空
数据类型基本类型字符串类型(string):字符串是连续的字符序列,字符串中的每个字符只占用一个字节 ‘’和””包裹的字符串有不同含义 ‘’包裹的字符串就是普通的字符串 “”包裹的字符串 PHP 将对一些特殊的字符进行解析(\n \t \r ….)
布尔值(boolean): true 或者 false(真或者是假) 0 undefined null false 都为 false 其余的都为 true
整数(integer): 整数数据类型只能包含整数。这些数据类型可以是正数或负数
浮点数(float): 浮点数是有小数点或指数形式的数字。
复合类型
数组(array):数组在一个变量中存储多个值。
对象(object): 对象是存储数据和有关如何处理数据的信息的数据类型。对象的属性和方式是无序的,通过对应的键获取对应的值
特殊类型
资源(resource):文件资源类型
空值(null): 空值是最简单的数据类型。表示没有为该变量设置任何值,另外,空值(NULL)不区分大小写
// 基本类型(标量 单值); 存放在栈内存中
$name='盘古';
$bool=false;
$age=12;
$price=12.6;
// 复合类型(多值); 数据存放在堆内存中 但内存地址 存在栈内存中
// 对象
$obj1=newstdClass;
$obj1->name='盘古';
$obj1->age=18;
var_export($obj1);
echo'
';
echo $obj1->name;// 打印 对象 name属性
// 数组
$arr=['cl',18,'唱'];
$lan=print_r($arr,true);
echo'
'.$lan.''.'
';
echo $arr[0];// 打印数组下标为0的值
// 特殊类型
$nu=null;
echo gettype($nu);
// 打印null类型
// 文件句柄
$file1=fopen("text.txt",'r');
var_dump($file1);
// resource(3) of type (stream) 资源类型
获取数据类型 gettype()
$one='132';
echo gettype($one);
// string
设置数据类型 settype()
数据类型转换 settype()
自动转换: 是由php内部转换的 不需要主动转换
```php
$name = ‘判断’;
$age = 18;
$t = true;
$f = false;
$g = ‘5g’;
$g1 = ‘g5’;
$ph = ‘php’;
echo $name + 10,’
‘;
// 警告 $name 为非数值 并且不是以数字开头 php自动转换为 0; 打印结果 为 0 + 10 = 10;
echo $age + 10,’
‘;
// 两个数值类型相加 得到结果 18 + 10 = 28
echo $t + 10,’
‘;
// php内部将 布尔值类型 true 转换成 1 得到结果为 1 + 10 = 11
echo $f + 10,’
‘;
// php 内部将 布尔值false转换成0 得到结果 0 + 10 == 10
echo $g + 10,’
‘;
// 首先警告 ‘5g’为字符串 但首位是由5开头 所以将 5g 转成了5 得到结果 5 + 10 = 15
echo $g1 + 10,’
‘;
// 首位为 g php不会将 g5转换成数字 所以的到 0 + 10 = 10;
echo $ph . 15;
// php 字符串拼接 将15装换成’15’ ‘php’ + ‘15’ = php15
>强制转换:
1.临时转换(转换类型)变量(int,string...)但这种转换是临时转换的变量本身并没有变化数据类型
2.永久转换settype()settype(变量,转换类型);这种装换会将变量类型永久改变
```php
// 临时转换
$str1 = 'admin';
var_dump((int)($str1));
// int(0) 将字符串'admin' 强制转换成整数类型
var_dump((bool) "");
// 将空字符串转换成布尔值 false
echo (int)$name + 10,'
';
// 将字符串先转成数值 再和数值进行运算
echo (int)$name + 10,'
';
// 使用 intval()强制转换
echo intval($name) + 20,'
';
// 打印结果 仍然是 string
echo gettype($name),'
';
// 永久转换 settype()
settype($var,$type);
// $var:要转换的变量;
// $type:可能要转换的数据类型 (integer,float,string,array,object,boolean,null);
$foo = '5bar';
settype($foo,"integer");
var_dump($foo);
$nums = 15;
settype($nums,"string");
var_dump($nums);