恕氢叛吕健频绿搪鼎叫济坪被
新建目录2,在目录下新建demo1.php备用
代码:
<h1>测试文件</h1>
变量类型1:
标量:单值变量,包括整型,浮点,字符串,布尔四种
标量输出echo,print或var_dump()可查看类型和值
新建demo2.php
代码:
<?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;
执行:
注意: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);
执行:
注意:英文一个字母长度为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:
复合类型: 多值变量,包括数组和对象二种
注意在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;
执行:
使用print_r()打印数组:
<?php echo "<h3>变量类型与转换</h3>"; echo "<hr color='lightgreen'>"; //复合类型: 多值变量,包括数组和对象二种 $book=['html','css','javascript','bootstrap','php']; print_r($book);
执行:
可以通过查看源码更方便的查看信息:
更便捷的方式:使用格式化标签<pre>原样输出:
<?php echo "<h3>变量类型与转换</h3>"; echo "<hr color='lightgreen'>"; //复合类型: 多值变量,包括数组和对象二种 $book=['html','css','javascript','bootstrap','php']; echo "<pre/>"; print_r($book);
执行:
还可以使用var_dump()打印,结构更加清晰:
<?php echo "<h3>变量类型与转换</h3>"; echo "<hr color='lightgreen'>"; //复合类型: 多值变量,包括数组和对象二种 $book=['html','css','javascript','bootstrap','php']; echo "<pre/>"; print_r($book); var_dump($book);
执行:
对象实例:
<?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);
执行:
变量类型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);
执行:
输出的内容:测试文件
来自于demo1.php:
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));
执行:
变量类型查询,设置与检测
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
执行:
慑狙轨卉熬北疮溯斗始粉朔涕