数据类型的转换与检测技术
<?php
//1.临时转换
//转换成整数
$a=(int)'5';
var_dump($a);
echo '<br>';
//转换成字符串
$b=(string)5;
var_dump($b);
echo '<br>';
//转换成浮点数
var_dump((float)$b);
echo '<br>';
//整数转换成数组
var_dump((array)$b,((array)$b)[0]);
echo '<br>';
//字符串转数组
$scr='php';
//没啥意义,可以直接用读取数组的方式来读取当前字符串
echo $scr[0],$scr[1],$scr[2],'<br>';
//字符串转为对象,只有一个,并且属性名是固定的‘scalar’
var_dump((object)$scr,((object)$scr)->scalar);
<?php
//2.自动转换
//"+"要求两边的数据都是数值类型,如果不满足,会自动转换
//右边的会自动转换成数值
echo 132+'123';
echo '<br>';
//前面带上字母会自动转成0
echo 123+'php123';
echo '<br>';
//后面是字母,会把前面数字部分转成数值,后面字母丢弃
echo 123+'123php';
echo '<br>';
//.在PHP中是连接的意思,它会把两边不是字符串的转成字符串
echo 'php'. 123 .'<br>';
<?php
$cbd=8848;
//看一下数值的类型
echo gettype($cbd),'<br>';
//用临时转换转换成字符串
echo gettype((string)$cbd),'<br>';
//settype永久转换,第一个值是转换的数值名,第二个参数是转换的类型
settype($cbd,'string');
echo gettype($cbd);
<?php
//检测是不是整数
function asd1($a,$b)
{
if(is_int($a) && is_int($b))
printf('是整数<br>');
else echo '不是整数<br>';
}
asd1(123,123);
asd1(123,'123');
echo '<hr>';
//检测是不是小数,数值,数值型字符串,其他的都报错
function asd2($a,$d)
{
if(is_numeric($a) && is_numeric($d))
printf($a.'+'.$d.'='.$a+$d.'<br>');
else echo '类型错误<br>';
}
asd2(1,2);
asd2(1,'2');
asd2(1.1,1.2);
echo '<hr>';
//PHP7以上
//检测数值和数值型字符串,小数
function asd3(int $a,int $d):string
{
return sprintf($a.'+'.$d.'='.$a+$d.'<br>');
}
asd2(1,2);
asd2(1,'2');
asd2(1.1,1.2);
变量声明与常用声明的方式与使用
<?php
//驼峰命名法
$itemPricing=456;
//严格区分大小写
$itempricing=456;
//函数不区分大小写
function hello($name)
{
return 'hello'.$name;
}
//写成大写也能调用
echo HELLO('朱老师'),'<br>';
//可变变量
$asd='abd';
$$asd='php中文网';
//可以用$$asd调用
echo $asd.'='.$$asd.'<br>';
//也可以用$abd来调用
echo $asd.'='.$abd.'<br>';
//在PHP中默认是值传递
$acd1=88;
$acd2=$acd1;
echo $acd1.'-'.$acd2.'<br>';
//更新变量
$acd1=99;
//$acd2不会改变值
echo $acd1.'-'.$acd2.'<br>';
//改成引用传递
$acd1=888;
$acd2=&$acd1;
echo $acd1.'-'.$acd2.'<br>';
$acd1=666;
echo $acd1.'-'.$acd2.'<br>';
$name='小马';
$email='admin@qq.com';
printf('name=%s,email=%s<br>',$GLOBALS['name'] ,$GLOBALS['email'] );
<?php
//常量,变量名都是大写
//函数常量
define('XM','男');
//函数运行是才会创建常量,不允许是没有的
function a()
{
define('XMX','男');
}
a();
//函数常量支持连接,数组
define('A','我是'.'小马');
echo A,'<br>';
define('B',[1,2,3]);
print_r(B);
//关键字函数
const XM='男';
echo XM;