[PHP从小白到大牛]-004 PHP变量数据类型(标量)

794 阅读3分钟

什么是数据类型

  • 就是瓶子的类型
  • 五八法则
  • 5种伪类型, 8种主要数据类型

整型

  • 不是美容整形, 是整数类型
  • 包括十进制, 八进制, 十六进制, 二进制
  • 八进制以0开头
  • 十六进制以0x开头
  • 二进制以0b开头

echovar_dump

  • 可以一次打印一个或者多个
$a = $b = $c = 123;
var_dump($a, $b, $c);

小练习

单选

下列可以用来打印变量的数据类型的是()(选择一项)

单选题 下列是PHP的主要数据类型的是()(选择一项)

 1、整型   
 2、浮点型  
 3、布尔型  
 4、对象  
 5、数组  
 6、资源   
 7、类  
 8、字符串型   
 9、空   
 10、接口

浮点数

  • 就是带小数点的数字
  • 浮点, 代表小数点可以任意浮动
  • 浮点数也可以表示成科学计数法的形式
  • 不要比较两个浮点数的大小...

小练习

多选题

下列正确表示PHP的浮点型数据的是()(选择两项)

布尔值

  • 只有两个, 要么是真, 要么是假, true or false
  • 不区分大小写

防止中文乱码

需要在文件头部添加如下代码

header('content-type:text/html;charset=utf-8')

多选题

下列对布尔变量的声明正确的是()(选择两项)

字符串类型

  • 字符串需要写在定界符之中
  • 有四种, 单引号, 双引号, heredoc, nowdoc

双引号和单引号的区别

  • 双引号可以解析变量, 单引号不能解析变量, 所以单引号执行的效率更高
  • 关于变量的定界问题
  • 花括号和变量之间可以有空格吗?
  • 如果单引号里面需要有单引号怎么办? 或者双引号中用到了双引号...

  • 需要转义
  • 常见转义符号

  • 当引号之间发生冲突的时候, 才需要转义
  • 思考如下代码的执行结果...

  • 如果是双引号呢?

小练习

单选题

下列哪个变量的输出结果是Tom said:"I'm fond of PHP!"()(选择一项)

A $words1='Tom said:"I'm fond of PHP!"';

B $words2="Tom said:"I'm fond of PHP!"";

C $words3="Tom said:\"I'm fond of PHP!\"";

D $words4='Tom said:\"I'm fond of PHP!\"';

对字符串进行增删改查

  • 通过下标取出字符串中的内容
  • 字符串变量[下标]或者字符串变量{下标}
  • 通过赋值可以替换
  • 字符串变量[下标] = 替换的值
  • 字符串变量{下标} = 替换的值
  • 下列代码的结果是什么?
$string='abc';

$string{0}='hello';

echo $string;
  • 这段代码呢?
$string='你好';
$string[1] = "帅";
echo $string;
  • 思考一下, 如何删除一个字符串?
$string = "abc";
$string[1] = '';
echo $string;
  • 如何增加呢?
$string = "abc";
$string{3} = 'd';
echo $string;

小练习

单选题

下列哪项能够从字符串$string='Knowledge is power!'中一次性截取出字符串now()(选择一项)

A echo $string{1}{2}{3};

B echo $string{1~3};

C echo $string{1}.$string{2}.$string{3};

D echo $string{1},{2},{3};

heredoc 和 nowdoc

  • 如果我们需要写一大段文字, 比如建立一个表格...
  • 我们通常需要这么写...
$id=2;
$username='xujunhao';
$email='xujunhao@126.com';
$str="<table border='1' width='80%' bgcolor=\"pink\">
<tr>
  <td>编号</td>
  <td>用户名</td>
  <td>邮箱</td>
</tr>
<tr>
  <td>1</td>
  <td>King</td>
  <td>382771946@qq.com</td>
</tr>
<tr>
  <td>{$id}</td>
  <td>{$username}</td>
  <td>{$email}</td>

</tr>
</table>";
echo $str;
  • 如果用上引号做定界符, 那么文字中的双引号, 都需要转义...
  • 我们还可以这么写...
<?php
$id = 2;
$username = "xujunhao";
$email = "xujunhao@126.com";
$str=<<<TABLE
<table border='1' width='80%' bgcolor="gold">
<tr>
  <td>编号</td>
  <td>用户名</td>
  <td>邮箱</td>
</tr>
<tr>
  <td>1</td>
  <td>King</td>
  <td>382771946@qq.com</td>
</tr>
<tr>
  <td>{$id}</td>
  <td>{$username}</td>
  <td>{$email}</td>

</tr>
</table>
TABLE;
echo $str;
  • 这样的话, 引号就不用了转义了...
  • 注意: 结束符前面不能有输出, 包括空格
  • heredoc相当于双引号, 可以解析变量
  • nowdoc相当于单引号, 不能解析变量

小练习

单选题

下列变量的声明用到nowdoc定界符的是()(选择一项)