1.数据类型的转换
<?php
//1.数据类型的转换
//1.1临时转换,常用 (int) (float) (string) (bool) (array) (object)
$num = 1234;
$str = '123张三';
var_dump((string)$num);
echo '<hr>';
var_dump((bool)$num);
echo '<hr>';
var_dump((array)$num,((array)$num)[0]);
echo '<hr>';
var_dump($num,(string)$num,(bool)$num);
echo '<hr>';
var_dump((int)$str);
echo '<hr>';
//应用场景举例,url中的queryString
//http://www.test.com/shuju_leixing.php?p=123&id=789
print_r($_GET);
echo '<hr>';
$urlQuery = $_GET['p'];
var_dump($urlQuery);
echo '<hr>';
//1.2系统转换(不建议使用,会在判断时容易出问题,容易出现不可预测的结果)
// 运算符+ 会把两边的数据转换为数值类型
echo '15' + 15;
echo '<hr>';
// 运算符. 会把两边的数据转换为字符串
echo '15' . 15;
echo '<hr>';
//1.3永久转换,只针对变量 settype(),参数1变量,参数2类型
$age = 55;
var_dump($age);
settype($age,'string');
var_dump($age);
2.数据类型的检测
<?php
//2.数据类型的检测
// is_int() is_float() is_numberic() is_string() is_null() is_array()
//以is_int()举例
function sum($a, $b)
{
if (is_int($a) && is_int($b)) {
printf('%d + %d =%d', $a, $b, ($a + $b));
} else {
echo '参数类型不对';
}
}
//正常显示
sum(5,5);
echo '<hr>';
//显示 参数类型不对
sum(5.1,5.1);
echo '<hr>';
//显示 参数类型不对
sum('5',5);
echo '<hr>';
//php7+ 支持参数类型检查
function sum2(float $a, float $b):string
{
return $a.' + '.$b.' = '.($a + $b);
}
echo sum2('5',5.42);
echo '<hr>';
//is_scalar() 检测数据类型是不是标量(单值)
$str = '123';
echo var_export(is_scalar($str));
echo '<hr>';
echo var_export(is_scalar([1,2,3]));
echo '<hr>';
//null不是标量
echo var_export(is_scalar(null));
3.变量和常量的相关知识
<?php
//3.变量和常量的相关知识
//3.1可变变量
$name = 'zhangsan';
$zhangsan = '姓名张三,25岁';
echo $$name.'='.$zhangsan;
echo '<hr>';
//3.2php变量区分大小写,函数不区分大小写
$Name = 'lisi';
echo $name.'不等于'.$Name,'<hr>';
function stu(){
return 'php函数不区分大小写';
}
echo stu(),'<hr>';
echo Stu(),'<hr>';
//3.3引用赋值
$age = 25;
$nianling =&$age;
echo $age ,'<hr>' ;
$nianling = 48;
echo $age;
//3.4预定义变量 数组类型 任何地方都可以访问调用,通过键值访问数据
//$GLOBALS $_GET $_POST $_SERVER $_COOKIE $_SESSION
echo $GLOBALS['name'];
//3.5常量 一旦创建不可删除。有两种方式:const define()
//const编译阶段 define()在运行阶段创建常量--if()--function()
const MAIL = '男';
define('BJ','北京');
echo MAIL,BJ;
function city(){
define('SJZ','石家庄');
}
city();
echo SJZ;