今天所学心得、笔记
示例代码截图
1、数据类型的转换
// 1. 临时转换:用户
$num = 123;
var_dump($num, (string)$num, (float)$num);
echo '<br>';
var_dump((array)$num,((array)$num)[0]);
echo '<br>';
$str = 'php.com';
var_dump((object)$str,((object)$str)->scalar);
echo '<br>';
var_dump($str);
echo '<hr>';
// 2. 自动转换: 系统
echo 123 + '456';
echo '<br>';
echo 123 + '456php';
echo '<br>';
echo 'php' . 123 . '<br>';
if (!isset($email)) echo '没定义邮箱';
echo '<hr>';
// 3. 永久转换: 只针对变量
$price = 888;
echo gettype($price), '<br>';
// 永久转换
settype($price, 'string');
echo gettype($price), '<br>';
echo '<hr>';
2、数据类型的检测技术
// 1. is_numeric():检查参数是否是数值或数值型的字符串
function sum1($a, $b) {
if (is_numeric($a) && is_numeric($b))
return sprintf('%d + %d = %d<br>', $a, $b, ($a + $b));
else echo '参数类型错误<br>';
}
echo sum1('ff',200);
echo sum1(100, "200");
echo sum1(100,200);
echo '<hr>';
// 2. is_int():检查参数是否是int类型
function sum2($a, $b) {
if (is_int($a) && is_int($b))
return sprintf('%d + %d = %d<br>', $a, $b, ($a + $b));
else echo '参数类型错误<br>';
}
echo sum2(100.5,200);
echo sum2(100, "200");
echo sum2(100,200);
echo '<hr>';
// 3. float $a:检查参数是否是float类型
function sum3(float $a,float $b) : string {
return $a . ' + ' . $b . ' = ' . ($a + $b). '<br>';
}
echo sum3(100.5,200.3);
echo sum3(100,200);
echo '<hr>';
// 4. is_scalar(): 检测变量类型是否是标量
var_export(is_scalar(100));
echo '<br>';
var_export(is_scalar(new class{}));
echo '<hr>';
3、变量、函数的声明
// 变量除了要满足以上的要求外,还有特殊性
// 1. 变量必须要用"$"为前缀: $name
// 2. 严格区分大小写
$userName = '齐天大圣';
$username = '卷帘大将';
echo $userName, ', ', $username, '<br>';
// 函数不区分大小写
function hello($name)
{
return 'Hello ' . $name;
}
echo hello('齐天大圣'),'<br>';
echo HELLO('卷帘大将'),'<br>';
echo '<hr>';
4、变量的赋值
// 默认是"值传递"
$price1 = 888;
$price2 = $price1;
printf('price1 = %d, price2 = %d<br>', $price1, $price2);
$price1 = 666;
printf('price1 = %d, price2 = %d<br>', $price1, $price2);
echo '<hr>';
// 引用赋值
$price1 = 888;
$price2 = &$price1;
printf('price1 = %d, price2 = %d<br>', $price1, $price2);
$price1 = 666;
printf('price1 = %d, price2 = %d<br>', $price1, $price2);
echo '<hr>';
5、预定义变量的使用
echo 'IP: '. $_SERVER['REMOTE_ADDR']. '<br>';
echo '浏览器: '. $_SERVER['HTTP_USER_AGENT']. '<br>';
echo '脚本绝对路径 = '. $_SERVER['SCRIPT_FILENAME']. '<br>';
echo '脚本相对路径 = '. $_SERVER['SCRIPT_NAME']. '<br>';
echo '当前脚本名称 = '. $_SERVER['PHP_SELF']. '<br>';
echo '<hr>';
// http://php.io/0126/demo1.php?id=1&name=admin
// 查询字符串,给GET请求用
echo '查询字符串 : '. $_SERVER['QUERY_STRING']. '<br>';
// http://php.io/0126/id/5/name/peter.html
echo 'PATH_INFO = '. $_SERVER['PATH_INFO']. '<br>';
echo 'URI: ' . $_SERVER['REQUEST_URI'], '<br>';
//get方式获取id
echo $_GET['id'];