欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  头条

php变量类型与转换

程序员文章站 2022-04-09 23:29:01
...
echo '<h3>2.变量类型与转换</h3>';
echo '<hr color="green">';

//标量:单值变量,包括整型,浮点,字符串,布尔四种

$age = 30; //1整型 integer
$salary = 1234.56; //2.浮点 float
$name = 'peter'; //3 字符串
$isMarried = true;  //4. 布尔型,true真,false假

//标量输出echo,print或var_dump()可查看类型和值

echo $name.'的年龄是:'.$age.',工资是:'.$salary.',是否已婚:'.$isMarried;
echo '<br>';
print $name; print '<br>';
var_dump($name);
echo '<hr color="red">';

//复合类型: 多值变量,包括数组和对象二种

$books = ['php','mysql','html','css','javascript']; //数组
$student = new stdClass(); //创建空对象$student
$student->name = '王二小';  //添加属性name
$student->course = 'php';  //添加属性course
$student->grade = 80;     //添加属性grade

//复合变量输出: print_r()或var_dump()

echo '<pre>'; //格式化输出结果
print_r($books);
print_r($student);
var_dump($books);
var_dump($student);
echo '<hr color="red">';

//特殊类型:资源类型,null

$file = fopen('demo.php','r') or die('打开失败');
echo fread($file, filesize('demo.php'));
fclose($file);

$price = null;

echo '$price is '.$price;

/**

* 变量类型查询,设置与检测

* 1.类型查询:

* gettype($var)

* 2.类型检测:

* 2.1: is_integer(),

* 2.2: is_float(),

* 2.3: is_string(),

* 2.4: is_bool(),

* 2.5: is_array(),

* 2.6: is_object(),

* 2.7: is_null(),

* 2.8: is_resource(),

* 2.9: is_numeric()...

* 3.类型转换:

* 3.1: 强制转换: (int)$val,(string)$val...

* 3.2: 临时转换(值转换类型不变):intval(),floatval(),strval(),val是value

* 3.3: 永久转换:settype($var,类型标识符)

*/

$price = 186.79;
echo gettype($price);  //float/double浮点型,float和double同义
echo '<hr>';
echo (int)$price;  //强制转为integer,186
echo '<hr>';
echo $price;  //查看原始数据,仍是浮点型,并无变化
echo '<hr>';
echo gettype($price);  //原始类型仍为double,并未发生变化
echo '<hr>';
echo intval($price);  //临时将值转为整型,输出:186
echo '<hr>';
echo $price; //输出原值,仍为186.79,原值并未发生变化
echo '<hr>';
settype($price,'integer');  //永久转为integer,返回布尔值
echo $price;  //查看值:186
echo '<hr>';
echo gettype($price);  //类型为integer
echo '<hr>';
echo is_integer($price)? 'Integer' : 'Double'; //Integer整型
echo '<hr>';
//is_numeric():判断是否是数字或数字型字符串
var_dump(is_numeric(100));
var_dump(is_numeric('200'));
var_dump(is_numeric('200php'));