2-1变量类型检测与转换-PHP实战开发教程

2-1变量类型检测与转换-PHP实战开发教程

恕氢叛吕健频绿搪鼎叫济坪被


新建目录2,在目录下新建demo1.php备用

2-1变量类型检测与转换-PHP实战开发教程第1张

代码:

<h1>测试文件</h1>

变量类型1:

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

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

新建demo2.php

2-1变量类型检测与转换-PHP实战开发教程第2张

代码:

<?php
echo "<h3>变量类型与转换</h3>";
echo "<hr color='lightgreen'>";
//标量:单值变量,包括整型,浮点,字符串,布尔四种
$age=22;
$salary=1234.567;
$name="mengmianren";
$isMarry=false;

//标量输出echo,print或var_dump()可查看类型和值
echo $name.'的年龄是:'.$age.',工资是:'.$salary.' 是否已婚?'.$isMarry;

执行:

2-1变量类型检测与转换-PHP实战开发教程第3张

注意:true的值为1   但是false的值不是0  而是一个空的字符串(如上图所示)

使用print和var_dump来输出变量,var_dump()可查看类型和值:

代码:

<?php
echo "<h3>变量类型与转换</h3>";
echo "<hr color='lightgreen'>";

$name="mengmianren";

print $name;
echo "<hr color='lightgreen'>";
var_dump($name);

执行:


2-1变量类型检测与转换-PHP实战开发教程第4张

注意:英文一个字母长度为1,即上面的mengmianren长度为11。因为demo2.php编码为utf8,使用3个字节来表示汉字,因此一个汉字的长度为3 所以汉字   萌面人    的长度为9

<?php
echo "<h3>变量类型与转换</h3>";
echo "<hr color='lightgreen'>";
$name="萌面人";

print $name;
echo "<hr color='lightgreen'>";
var_dump($name);

执行:

2-1变量类型检测与转换-PHP实战开发教程第5张


变量类型2:

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

注意在PHP5.4以前创建数组的方式类似于:

$books=array(1,2,3)

现在这种语法已经被淘汰

数组的声明如下:

$books=[1,2,3];

数组不能使用echo打印,可以使用print_r()打印

实例:

<?php
echo "<h3>变量类型与转换</h3>";
echo "<hr color='lightgreen'>";
//复合类型: 多值变量,包括数组和对象二种
$book=['html','css','javascript','bootstrap','php'];
echo $book;

执行:

2-1变量类型检测与转换-PHP实战开发教程第6张

使用print_r()打印数组:

<?php
echo "<h3>变量类型与转换</h3>";
echo "<hr color='lightgreen'>";
//复合类型: 多值变量,包括数组和对象二种
$book=['html','css','javascript','bootstrap','php'];
print_r($book);

执行:

2-1变量类型检测与转换-PHP实战开发教程第7张

可以通过查看源码更方便的查看信息:

2-1变量类型检测与转换-PHP实战开发教程第8张

更便捷的方式:使用格式化标签<pre>原样输出:

<?php
echo "<h3>变量类型与转换</h3>";
echo "<hr color='lightgreen'>";
//复合类型: 多值变量,包括数组和对象二种
$book=['html','css','javascript','bootstrap','php'];
echo "<pre/>";
print_r($book);

执行:

2-1变量类型检测与转换-PHP实战开发教程第9张

还可以使用var_dump()打印,结构更加清晰:

<?php
echo "<h3>变量类型与转换</h3>";
echo "<hr color='lightgreen'>";
//复合类型: 多值变量,包括数组和对象二种
$book=['html','css','javascript','bootstrap','php'];
echo "<pre/>";
print_r($book);
var_dump($book);

执行:

2-1变量类型检测与转换-PHP实战开发教程第10张

对象实例:

<?php
echo "<h3>变量类型与转换</h3>";
echo "<hr color='lightgreen'>";

$student=new stdClass();//new 一个标准对象
$student->name="mengmianren";
$student->course='php';
$student->grade=80;

echo "<pre/>";
print_r($student);
echo "<hr>";
var_dump($student);

执行:

2-1变量类型检测与转换-PHP实战开发教程第11张


变量类型3:

特殊类型:资源类型,null

打开资源实例:

<?php
echo "<h3>变量类型与转换</h3>";
echo "<hr color='lightgreen'>";
//打开demo1.php
$file=fopen('demo1.php','r') or die('打开失败');
//读取并输出demo1.php的内容,长度为demo1.php文件内容的长度
echo  fread($file,filesize('demo1.php'));
//关闭文件
fclose($file);

执行:

2-1变量类型检测与转换-PHP实战开发教程第12张

输出的内容:测试文件

来自于demo1.php:

2-1变量类型检测与转换-PHP实战开发教程第13张

null实例:

<?php
echo "<h3>变量类型与转换</h3>";
echo "<hr color='lightgreen'>";

$num=null;
//null为空,echo输出什么都看不到
echo $num;
echo is_null($num);
echo "<br>";
var_dump($num);
echo "<br>";
var_dump(is_null($num));

执行:

2-1变量类型检测与转换-PHP实战开发教程第14张



变量类型查询,设置与检测
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,类型标识符)
代码实例:

<?php
echo "<h3>变量类型与转换</h3>";
echo "<hr color='lightgreen'>";

$price=186.79;
echo gettype($price);//返回值为double 就是float的别名
echo "<hr>";
echo (int)$price;//强制类型转换为int  值为186
echo "<hr>";

echo $price;//值仍然为186.79   强制转换(仍然是临时转换)并不会改变值本身 只有永久转换才会导致变量值变化
settype($price,'integer');//永久转化为int  值变为int型,即186
echo "<hr>";
echo $price;//值为186
echo "<hr>";
echo gettype($price);//类型为:integer
echo "<hr>";
echo is_integer($price);//返回值为1,表明是int型

//is_numeric():判断是否是数字或数字型字符串 用的比较广泛,比如获取URL中的值后需要判断是否是数字
$num=100;//数字
$sum='100';//数字型的字符串
$name="mengmianren";
echo "<hr>";
var_dump(is_numeric($num));//返回值为true  数字
echo "<hr>";
var_dump(is_numeric($sum));//返回值为true 数字型字符串
echo "<hr>";
var_dump(is_numeric($name));//返回值为false  不是数字或者数字型字符串

//intval() 与(int)val  基本一致
$salary=1234.789;
echo "<hr>";
echo intval($salary);//临时转化为int
echo "<hr>";
echo gettype($salary);//类型还是double








执行:

2-1变量类型检测与转换-PHP实战开发教程第15张

慑狙轨卉熬北疮溯斗始粉朔涕