1. 数据类型的转换与检测
1.1 数据类型的转换
- 临时转换
<?php
// 1.临时转换
// 地址栏传参:?id=123
$id = $_GET['id'];
// url中获取的内容全部默认为字符串
var_dump($id);
// 使用(int)转为整数
$id = (int)$id;
echo gettype($id);
echo '<hr>';
$b = 123;
// 使用(string)转为字符串
var_dump($b,(string)$b);
echo '<hr>';
// 使用(float)转为浮点数
var_dump($b,(float)$b);
echo '<hr>';
// 使用(array)转为数组
var_dump($b,(array)$b);
echo '<hr>';
// 使用(object)转为对象
var_dump($b,(object)$b);
?>
- 系统自动转换
<?php
// 自动转换
echo 123 + '478';
// 等价于
// 数值自动转换(int)
echo 123 + (int)'478';
echo '<br>';
// 字符串自动转换
echo 'php' . 123 . '<br>';
// // 等价于
echo 'php' . (string)123 . '<br>';
// 布尔转换
if (!isset($email)) echo '未定义邮箱';
?>
- 永久转换
<?php
$price = 888;
// // 永久转换
settype($price,'string');
// 返回string
echo gettype($price);
?>
1.2 数据类型的检测
<?php
// is_numeric()检测参数是否数值或数值型字符串
function sum2($a,$b) {
if (is_numeric($a) && is_numeric($b))
printf('%d + %d = %d<br>',$a,$b,($a + $b));
else echo '参数错误<br>';
}
sum2(12,12);
sum2(12,'24');
sum2('php','cn');
echo '<hr>';
// is_int()检测是否整数
function sum3($a,$b) {
if(is_int($a) && is_int($b))
printf('%d + %d = %d <br>',$a,$b,($a + $b));
else echo '参数错误<br>';
}
sum3(12,13);
sum3(123.33,123.22);
echo '<hr>';
// int检测整数,float可检测整数和浮点数
function sum4(float $a,float $b) {
return $a . ' + ' . $b . ' = ' . ($a + $b) . '<br>';
}
echo sum4(123,'33');
echo sum4(123.45,123.33);
echo '<hr>';
// is_scalar()检测变量类型是否标量(标量就是单值)
// 是标量返回true
var_export(is_scalar(1));
echo '<br>';
// 对象不是标量返回false
var_export(is_scalar(new class{}));
echo '<hr>';
$str = 'a,1,2';
$arr = ['a','1','2'];
$obj = (object)$arr;
// $str 是字符串 true
echo '$str:is_string ->' . var_export(is_string($str),true), '<br>';
// $str 是布尔 false
echo '$srt:is_bool ->' . var_export(is_bool($str),true), '<br>';
// $arr 是数组 true
echo '$arr:is_array ->' . var_export(is_array($arr),true), '<br>';
// $obj 是对象 true
echo '$obj:is_object ->' . var_export(is_object($obj),true), '<br>';
// $obj 是null false
echo '$obj:is_null ->' . var_export(is_null($obj),true), '<br>';
// $obj 是资源 false
echo '$obj:is_resource ->' . var_export(is_resource($obj),true), '<br>';
?>
2. 变量声明与常用声明的使用方式
1.驼峰式:
$userName``getUser()
常用于对象属性和方法中
2.蛇形:set_public
常用于函数中
3.帕斯卡:UserModel
常用于类的名称中,也叫大驼峰
4.全大写:const
define()
常量声明中
<?php
// 驼峰式
$userName = '天蓬大人';
echo $userName;
echo '<hr>';
// 蛇形
function set_uesername($name) {
return 'Hello,' . $name;
}
echo set_uesername('灭绝老师');
echo '<hr>';
// 帕斯卡(大驼峰)
class SetName{
private $setTitle = 'php中文网';
public function setTitle() {
return $this->setTitle;
}
}
$SetName = new SetName;
echo $SetName->setTitle();
echo '<hr>';
// const常量全大写
const PHPURL = 'php.cn';
echo PHPURL;
// define()常量全大写
if (true) {
define('USER','天蓬大人');
}
echo USER;
?>