Correcting teacher:天蓬老师
Correction status:qualified
Teacher's comments:
<?php
// 临时转换: 用户 并不会改变数据的原始类型
$id = $_GET['id'];
var_dump($id);
// id应该是整数才方便运算,url中的内容全部默认是字符串
// 转换到整数
$id = (int)$id;
if ($id === 3) {
echo '接收成功';
}
echo '<br>';
// 转为浮点数
$n = 1212;
var_dump($n, (string)$n,(float)$n) ;
echo '<hr>';
// 数组
var_dump((array)$n,((array)$n)[0]);
echo '<hr>';
// 字符串转数组意义不大
$str = 'PHP';
echo $str[0],$str[1], $str[2], '<br>';
// 字符串转对象
var_dump((object)$str,((object)$str)->scalar);
echo '<hr>';
// 原始类型
var_dump($str);
<?php
// 每一种操作符,它要求的操作数类型是固定的,如果不满足就自动转换
echo 123 + '456';
echo '<br>';
// "+"要求参与计算的数据都是数值类型,如果不是,就是会触发自动转换
echo 123 + (int)'456';
echo '<hr>';
echo 123 + 'php456';
echo '<br>';
echo (int)'php456';
echo '<hr>';
echo 123 + '456php';
echo '<hr>';
// ".", 希望二边都是字符串,如果不是就转换 字符串拼接
echo 'php' . 123 . '<hr>';
// 最常用的是布尔转换
if (!$email) echo '未定义邮箱';
echo '<br>';
// $email 未定义,NULL
var_dump($email);
echo '<br>';
// null ==> false
echo var_export((bool)null);
echo '<hr>';
if (!isset($email)) echo '未定义邮箱';
<?php
$price = 124;
// 整数类型
echo gettype($price), '<br>';
// 转为字符串
echo gettype((string)$price), '<br>';
// 原始类型
echo gettype($price), '<hr>';
// 永久转换
// 第一个参数要转换的变量,第二个转换的类型
settype($price, 'string');
echo gettype($price), '<br>';
// 类型检测
$pst = 'A, 0, 1';
$olt = ['A', 0, 1];
$obj = (object)$olt;
// 检测$pst是数字
echo '$pst: is_numeric = ', var_export(is_numeric($pst), true), '<br />';
// 检测$pst是整数
echo '$pst: is_int = ', var_export(is_int($pst), true), '<br />';
// 检测$pst是字符串
echo '$pst: is_string = ', var_export(is_string($pst), true), '<br />';
// 检测$pst是布尔
echo '$pst: is_bool = ', var_export(is_bool($pst), true), '<br />';
// 检测$olt是数组
echo '$olt: is_array = ', var_export(is_array($olt), true), '<br />';
// 检测$obj是对象
echo '$obj: is_object = ', var_export(is_object($obj), true), '<br />';
// 检测$obj是null
echo '$obj: is_null = ', var_export(is_null($obj), true), '<br />';
// $obj是资源
echo '$obj: is_resource = ', var_export(is_resource($obj), true), '<br />';
// $obj是标量
echo '$obj: is_scalar = ', var_export(is_scalar($obj), true), '<br />';
变量就是代码中需要暂存的数据,变量按名访问,变量名必须是一个合法的标识符,仅允许使用: 英文字母(a-z,A-Z),数字(0-9),下划线(_),禁止使用数字开头
标识符有二类: 预定义的: 保留字, 关键字
变量必须要用"$"为前缀,严格区分大小写
// 1. 驼峰式 变量,对象的属性和方法
$userName = '豪宅';
$username = '别墅';
echo $userName, ', ', $username, '<br>';
// 2. 蛇形: set_public(),函数
function setPublic($ev)
{
return 'Hello ysqsm ' . $ev;
}
echo setPublic('休息'),'<br>';
// 3. 帕斯卡: UserModel, 类,与驼峰式很像,所以也叫: 大驼峰
$SanHai = '上海';
$BeiJin = '北京';
echo $SanHai ,', ', $BeiJin, '<br>';
//全大写: 常量
// const: 关键字 声明常量
const FIGURE = "小姐姐";
const XINBIE = "女";
printf('姓名: %s, 性别: %s<br>', FIGURE, XINBIE);
echo '<br>';
// define()创建常量
function a() {
define('ZSHY', 'Hello world (^_^)/早上好');
}
a();
echo ZSHY , '<br>';
if (true) {
define('PAONIU', '泡妞了作业补全了没');
}
echo PAONIU;