您的位置:首页 > Web前端

前端PHP入门-004-数据类型,特别需要注意字符串

2016-08-07 10:49 323 查看

人类世界对万事万物都有种类划分,例如:

哺乳动物

人、猫、马、鸭嘴兽….等等

蔬菜

西红柿、波菜、茄子….等等

水果

西瓜、桃子、苹果….等等



数据类型:就是对数据分类的一个划分而已


整型就是整数

我一直在讲,不要被名词的含义所吓唬住。

到底什么是整型呀?

所谓整型,就是大家数学中所学的整数,我们最经常使用的。

整型——整数也,英文称之:`integer`。英文简写:`int`

整型分为:

10进制

8进制 (了解,基本不用)- 0开头的

16进制(了解,基本不用)- 0X开头

整型(整数)在计算机里面是有
最大值
最小值
范围的。

备注
:

32位计算机,也就是32位计算机一次运算处理的最大范围为-232至232-1。

64位计算机呢?——-264至264-1 所以为什么现在大家都是用64位计算机了吧

10进制声明


对你你们到这种程度就可以了!别忘深里研究,了解即可



<?php

//声明变量 整数,英文 int

//$int = 1000;

$zhengshu = 1000;

echo $zhengshu;

?>

[/code]

8进制声明


以0开始,后面跟0-7的整数(了解知识点)



//8进制的取值范围最大为0-7,即0,1,2,3,4,5,6,7

//能力有限使用的比较少

$bajingzhi =  033145;//八进制代码

echo $bajingzhi;

[/code]

16进制声明


以0x开始,后面跟0-f的,0x的abcdef不区分大小写。(了解知识点)



<?php

//16进制的取值范围最大为0-f,即0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f

$shiliu =  0x6ff;

echo $shiliu;

?>

[/code]

别去考虑8进制和16进制是怎么实现的,没有用! 学会如何声明10制制整数即可。了解8制制和16进制的声明,实在不会也不要紧


布尔

所谓布尔类型,举个例子帮助理解:

阴/阳

男/女

真/假

对/错

存在/不存在

0/1

等等…. …
简单的思维,没有模棱两可


<?php

//声明一个变量(拼音)为布尔

$buer = true;

//导明一个变量(英文)

$bool = false;

?>

[/code]

注:
true和false外面不要加引号。类型转换,后面的课程当中我们来讲解。

false家族成员,在Java当中只有true和false,


** 重点,重点,重点**



布尔值=false  .

整数值=0

浮点数=0.0

空字符串

空数组

没有变量成员的对象。

变量值为空NULL


思考: JavaScript的false五兄弟是哪些?


除了上述情况以外,其余情况值将会被转换为true,

一般来说,1为true,0为false。

这些转换将在以后的判断语句中经常遇到。



字符串

字符串就是所有我们可见和不可见的字符,就是我们日常当中说的话,就是我想说:“胖先生你比宋仲基都帅”或者“王尼玛,我爱你!”。

字符串,就是我想表达的一切让人看到的字符。

如何声明字符串

在PHP语言中声明字符串有三种方式:

用单引号声明

用双引号声明

用字界符声明(需要输入非常大段的字符串时使用)

单引号声明


用英文半脚的单引号,将字符串包起来



<?php

//声明字符串变量$zhifu


$zhifu = '曾经有操蛋的爱情摆在我面前,我珍惜了。当我得到的时候才感到后悔莫及。如果非要在这段爱情前面加上一段三个字,我愿意说三个字:滚犊子';


//你可以放www指定的目录下,新建一个文件叫str.php。然后访问一下http://127.0.0.1/str.php试试。会不会显示这句话。


echo $zhifu;

//想好玩可以加入样式哟!~~~~


?>

```


## 双引号声明字符串

> 在字符串两边加双引号。



```php

<?php

//声明字符串变量$str

$str = "如果非要在滚犊子前面加上一个时间的话我愿意是马上。";


echo $str;

?>

[/code]

字界符声明

在变量后面的等号写三个小于号(<<<)。

然后在<<<后面写上字符(建议英文大写字符)。如下例中的:ABC

然后换行写上任意想写的字符

写完后,顶行。在行最开始处,再写上<<<后面的字符和分号。如下例中的:ABC;

<?php

$dingjie = <<<ABC

如果

非要在这个滚犊子


面<br />

加上一段

<i>距离的话</i>

我想说:<h1>思想有多远,你就跟我滚多远</h1>

ABC;

?>

[/code]

重点,双引号和单引号有什么区别呢?

重要知识点
PHP面试题中,高概率面试题(建议背诵并实验三遍以上)

双引号
解析
变量,但是单引号
不解析
变量。

在双引号里面插入变量,变量后面如果有英文或中文字符,它会把这个字符和变量拼接起来,视为一整个变量。
一定要在变量后面接上特殊字符,例如空格等分开


如果在双引号里面插变量的时候,后面不想有空格,可以拿大括号将变量包起来。
推荐写法


双引号解析转义字符,单引号不解析转义字符。但是,单引号能解析\' 和\

单引号效率高于双引号,
尽可能使用单引号


双号和单引号可以互相使用!双引号当中插入单引号,单引号当中插入变量,这个变量会被解析。

神奇的字符串拼接胶水——(
.
)点,用来
拼接字符串


我们将定界符声明字符串视为双引号一样的功能来看待。

实验举例

1.双引号解析变量,但是单引号不解析变量

双引号:

<?php

//声明变量$shouji

$shouji = '为了苹果手机去卖肾';

//在双引号中放$shouji 然后echo 一下是什么效果呢?

$str = "$shouji 会不会显示呢?";

//输入$str试试

echo $str;

?>

[/code]

单引号:

<?php

//声明变量$shouji

$shouji = '为了苹果手机去卖肾';

//在单引号引号中放$shouji 然后echo 一下是什么效果呢?

$str = `$shouji 会不会显示呢?`;

//输入$str试试

echo $str;

?>

[/code]


通过上例,我们证明了:双引号执行变量,而单引号不执行变量。

我们得到一个重要结论:

1.双引号需要解析变量,因此双引号的效率没有单引号高。

2.我们如果为了更高的效率,我们通常使用单引号。



2.在双引号里面插入变量,变量后面如果有英文或中文字符,它会把这个字符和变量拼接起来,视为一整个变量。可以在后面接上特殊字符,例如空格等分开。

<?php

$huaqiangu = '花千骨';

//直接连接使用

$str = "$huaqianguaaaa";

//你会发现输出$str,什么都没有在页面中显示

echo $str;

?>

[/code]

** 改进代码,空格分隔**

<?php

$huaqiangu = '花千骨';

//中间加了空格哟

$str = "$huaqiangu aaaa";


echo $str;

?>

[/code]

再改进代码,使用叹号!

<?php

$huaqiangu = '花千骨';

//中间加了叹号

$str = "$huaqiangu!aaaa";


echo $str;

?>

[/code]

写这么多就是为了证明上面的使用规则


3.如果在双引号里面插变量的时候,后面不想有空格,可以拿大括号将变量包起来。

那,如果我不想在后面有空格有,有特殊符号,就想直接显示变量$huaqiangu呢?——我们的解决办法是用大括号把变量包起来。代码如下:

<?php

$huaqiangu = '花千骨';

//使用大括号了

$str = "{$huaqiangu}aaaa";


echo $str;

?>

[/code]

4.双引号解析转义字符,单引号不解析转义字符。但,单引号能解析\' 和\

第4个字符串的注意事项比较难以观察,转义字符有一些,但最常用的有:

\n 回车

\t 缩进

这个跟你们之前学习JavaScript当中的使用方式一致

<?php

//声明一个字符串,记住是双引号

$string = "我,每天\n给梦想\t一个机会";

echo $string;

?>

[/code]

页面中看不到效果,右键查看源代码才能看到想过



$string = "我,每天\n给梦想\t一个机会";

\n在每天的后面,在源代码里显示的结果是跟按了回车键一样的效果。

\t在给梦想和一个机会中间。显示的结果是有几个空格的效果。\t相当于我们在电脑上按了一个tab键效果。



BUT,我们同样执行一下上面的代码,但是$string双引号改为用单引号:

<?php

//声明一个字符串,记住是双引号

$string = '我,每天\n给梦想\t一个机会';

echo $string;

?>

[/code]

证明: 双引号执行转义字符而单引号不执行转义字符。


5.转义字符\(反斜线的使用,很好用)

如果我们声明一个变量beizi,我们想要在" role="presentation" style="position: relative;">beizi,我们想要在beizi,我们想要在beizi声明的双引号中间加上一个双引号显示输出怎么办?

<?php


//要在$beizi的字符串中显示一个双引号怎么办?

$beizi = "多于绝大多数的人出生就是杯具,但是"我们在不断的让人生变为喜剧";


echo $beizi;

?>

[/code]

悲剧啦!


如果真如上述所写代码,代码会报错。报错结果如下:

因为字符串:“多于绝大多数的人出生就是杯具,但是"我们在不断的让人生变为喜剧”必须写在双引号中间。而双引号中间还有一个双引号。也就是意味着字符串声明提前结束了,在“但是”处结束了。后面"我们在不断的让人生变为喜剧",电脑不认识。

这真是一个杯具!那么办?


答:我们需要将双引号原有的意义去掉。再双引号前面加上一个\(反斜线,计算机的专业名词叫转义字符),就可以了。

```php

<?php

//要在$beizi的字符串中显示一个双引号怎么办?
$beizi = "多于绝大多数的人出生就是杯具,但是\"我们在不断的让人生变为喜剧";

echo $beizi;


?>

你可以再执行一下上面的代码,发现不再报错了。同理可推,单引号当中要插入一个单引号显示出来的时候,也可以在单引号声明的字符串中的单引号前面加上(反斜线,转义字符),将单引号的意义(限定字符区间)去掉。

```php

<?php


//要在$beizi的字符串中显示一个双引号怎么办?

$shengyang = 'i\'m xiaoshengyang';


echo  $shengyang;

?>

[/code]

6.双号和单引号可以互插!!!双引号当中插入单引号,单引号当中插入变量,这个变量会被解析。

```php

<?php

$legend = '猛虎';

$NoAlike = "心有'$legend',细嗅蔷薇";

echo $NoAlike;//运行结果为-->心有'猛虎',细嗅蔷薇


?>


7.`重点`神奇的字符串拼接胶水——(.)点,用来拼接字符串。

```php

<?php

$huaqiangu = '花千骨';

//中间加了空格哟

$str = "{$huaqiangu}aaaa";


echo $str;

?>

[/code]

上面这段代码是,我们曾经说过双引号能够解析变量,有一个问题:


效率没有纯单引号的高



问题1:我想改为效率最高的方式应该怎么办?

问题2:我有多个字符串,要拼接在一声怎么办?

使用到神奇的胶水[粘合剂]:(.)点,用来拼接字符串。

<?php


$shixi = '大学4年要好好学习<br />';


$buran = '不然连实习的机会都没有<br />';


$mimang = '把别人用来迷茫的时间拿到胖先生这里学习<br />';


$xuexi = '学习PHP<br />';


//我们可以把字符串全部拼接起来。

echo $shixi . $buran . $mimang . $xuexi;


?>

[/code]

JavaScript如何做呢?


因此,刚刚的问题一的代码我们可以改为:

```php

<?php

huaqiangu=′花千骨′;//中间加了空格哟" role="presentation" style="position: relative;">huaqiangu=′花千骨′;//中间加了空格哟huaqiangu=′花千骨′;//中间加了空格哟str = $huaqiangu . 'aaaa';

echo $str;


?>


8.我们将定界符声明字符串视为双引号一样的功能来看待。

```php

<?php


$weilai = '努力才有未来';

$mimang = '迷茫的原因是没有目标';


$dingjie = <<<ABC

如果

$weilai

非要\t在这"个滚"犊子


'$mimang'

面<br />

加上\n一段

<i>距离的话</i>

我想说:<h1>思想有多远,你就跟我滚多远</h1>

ABC;


echo $dingjie;

?>

[/code]

你可以执行发现weilai," role="presentation" style="position: relative;">weilai,weilai,mimang,\t\n都可以执行,双引号单引号都能显示。这就是定界符的特点。

再声明一次:字符串的声明每一项都必须记住,非常常用。并且面试题出现的概率非常高!



不可见字符:主要是计算机规定的一些特殊符号。例如:回车(\n)、缩进(\t)等。



浮点型

所谓浮点类型,可以理解为:我们数学里面的小数。

【注意】关于精度、取值范围和科学型声明不是学习的重点。因为此块在实际开发中用的特别少。针对于WEB前端的各位学生

声明方式分为两种:

普通声明

科学声明

普通声明浮点数

```php

<?php

//声明变量fudian的值为12121.3132

fudian=12121.3132;echo" role="presentation" style="position: relative;">fudian=12121.3132;echofudian=12121.3132;echofudian;

//声明变量fl的值为0.8873" role="presentation" style="position: relative;">fl的值为0.8873fl的值为0.8873fl = 0.8873;

var_dump($fl);//看这里,看这里,看这里

?>

我们将文件保存到www目录下,保存文件名为:float.php。在浏览器地址栏,输入: http://127.0.0.1/float.php , 执行看看结果,如下:

![](http://i.imgur.com/5bghAfL.png)


`echo 直接输出了12121.3132,而var_dump 输出了0.8873,还显示了变量$fl的类型为float。`


----------

> var_dump() 是一个函数。向括号()中间`插入变量`。这个函数,会打印出来`数据类型`,还会对应显示变量的`长度`和`值`。

> var 是指变量的英文 : variable


----------


# NULL类型,别死在这里

> 空在英文里面表示是null,它是代表`没有`。空(null)`不是false`,`不是0`,也`不是空格`。


【重点】知道null产生的三种情况,学习empty 和 isset两个函数的区别。


主要有以下三空情况会产生空(null)类型:

+ 通过变量赋值明确指定为变量的值为NULL

+ 一个变量没有给任何值

+ 使用函数unset()将变量销毁掉


```php

<?php

//声明变量为null

$n = null;

var_dump($n);


//var_dump显示输出变量$meiyou,看看结果是什么?

var_dump($meiyou);


//声明一个变量$iphone的值为字符串的手机

$iphone = '手机';

//unset销毁掉一个变量

unset($iphone);

var_dump($iphone);


?>

[/code]

接下来我们来讲解两个跟null相关的函数,这两个函数
非常常用
,我们将级别定义为【默写级别】。

empty()可以向括号中间传入一个变量。这个变量的值如果为false或者为null的话,返回true。

<?php


$apple = null;

if(empty($apple)){

echo '执行了真区间,凤姐,我爱你';

}else{

echo '行了假区间,你想凤姐了';

}

?>

[/code]

上述实验证明,$apple为null。将apple放至empty中间。结果执行了真区间。


isset()可以向括号中间传入一个或者多个变量,变量与变量间用逗号分开。只要有有一个变量为null,则返回false。否则,则返回true。

<?php

//待会儿将变量$jia改为null再执行看看结果

$jia = false;


$result = isset($jia);


var_dump($result);


?>

[/code]

告诉我答案:

<?php

$one = 10;

$two = false;

$three = 0;

$four = null;


$result = isset($one , $two , $three , $four);

//执行看看结果,是不是

var_dump($result);


?>

[/code]

我没有对象呢?不讲了,以后再说!

对象类型大家这这里不用学习。

私人定制,以后找到对象在学习!




知道对象是一个复合类型,对象的英文叫object

var_dump一个变量的时候看到的类型为object的

这个变量就是对象类型



墙角画圈圈呢?数组,不认识它

数组类型我们也不在这里学习,因为以后会也有一个章节来进行讲解。

本章重点:


知道数组是一个复合类型

数组的英文叫array,var_dump一个变量的时候看到的类型为array的,这个变量就是数组类型

会一个最简单、最基本的数组声明【默写】

接下来我们声明一个数组,了解数组里面可以插入多个值就行。

<?php

//定义$shu这个变量

//数组声明是向array里面插入一个或者多个值

//一个或者多个值用逗号分开

$shu = array(1,2,3);


?>

[/code]

资源类型 , 谁有资源,介绍一下?



资源类型很多初学者觉得比较难以理解。因为资源类型打印出来只能够看到一个英文的resource。其他的什么在电脑上都不能显示出来,而他有客观存在。

其实,资源类型很简单。我们针对词来进行说明。

电脑里面的资源是指:

word,excel等文件

有人收藏的美女图片和我们的自拍照片等图片

音乐

打开的网页

数据库

等等我想静静

我们打开一个图片,用PHP来操作它,我们就是
操作的一个资源


我们打开的数据库连接,我们需要连接数据库,数据库就是我们操作的资源。

包括网络连接,连接后发送邮件,我们也可以认为是一个资源。

本章重点:

理解资源就提操作我们可见和不可见的文件、网络和数据。

我们在以后的章节中,操作图片和网络的时候大家会有更为深刻的印象。

# 眼前了解回调类型即可

callback,英文中的call是叫,back是返回,回来的意思。

callback 汉译过来的意思即为:回调。

(执行完成,再调一次某个功能执行一次)


我们在讲解函数类型和对象的时候,我们会演示讲解回调函数

# 查看和判断数据类型

我们知道了一个数据的类型,才能进行下一步操作。后面的时候,大家可以学习到更多的知识——自定义功能(函数)。

我们来做一个场景模拟:(注:眼前不用会写这个函数,以后会教大家)

假设,我们可以写一个智能的功能(函数),它让有一个功能,就是打开一个装有学生成绩的电子表格。这个函数非常先进。

只有一个人的时候,就返回一个人的成绩,成绩是整型或者浮点型变量。

有2个或两个以上人的时候,返回一个数组类型变量,数组中装有多个人的成绩

如果没有人的时候,则返回布尔值的变量,变量值为false

通过上面的一个场景模拟,我们知道了,一个函数(功能)有可能返回不同的数据类型。因此,我们可以根据不同的类型来做不同的事情。

判断数据类型很重要,我们需要严格掌握。

【默写级知识点】显示类型的函数、得到类型的函数、判断类型的函数

查看数据类型

gettype(传入一个变量) 能够获得变量的类型

```php

<?php

//声明一个变量88.8,

//你可以自己多做几次实验换成其他类型看看type输出是多少" role="presentation" style="position: relative;">type输出是多少type输出是多少float = 88.8;

type=gettype(" role="presentation" style="position: relative;">type=gettype(type=gettype(float);

echo $type;


?>

```

var_dump(传入一个变量) 输出变类型和值

```php

//多换几个类型试试

$str = '你喜欢尊上还是喜欢杀仟陌?';

var_dump($str);

```

判断数据类型


使用is_* 系列函数。

is_types这一系列的函数,来进行判断某个东西是不是某个类型。

如果是这个类型返回真,不是这个类型返回假。



方法名描述
is_int是否为整型
is_bool是否为布尔
is_float是否是浮点
is_string是否是字符串
is_array是否是数组
is_object是否是对象
is_null是否为空
is_resource是否为资源
is_scalar是否为标量
is_numeric是否为数值类型
is_callable是否为函数
<?php

//is_* 系列函数有个特点,就是如果是这个类型就返回的是真。不是这个数据类型就返回的是假

//声明类型为假

$fo = false;


if(is_bool($fo)){

echo '执行真区间';

}else{

echo '执行假区间';

}


//检查未声明的变量$p是否为空,为空就执行真区间

if(is_null($p)){

echo '执行真区间';

}else{

echo '执行假区间';

}


//字符串类型的数值,看看执行的是真还是假

$str = '18.8';

if(is_numeric($str)){

 echo '执行真区间';

}else{

 echo '执行假区间';

}


?>


----->重新进行测试代码

//把sca的值换成整型、浮点、布尔和字符串试试

$sca = true;

//如果为标量,执行真区间

if(is_scalar($sca)){

echo '执行真区间';

}else{

echo '执行假区间';

}


//换成echo,is_int试试,为什么echo执行假区间呢?

if(is_callable('var_dump')){

echo '执行真区间';

}else{

echo '执行假区间';

}

[/code]

注:is_types 很好记。is_ 在前后面跟类型即可。


标量:整型(int) 浮点(float)、布尔(bool)、字符串(string)


混合类型: 数组(array)、对象(object)


特殊类型:空(null)、 资源(resouce)、回调(callback)


为什么最后的实验中echo执行假区间呢?

答:因为echo 不是函数,是基本语法。大家眼前可以不用理解函数和基本语法的区别。了解和不了解在实际开发中没有影响。知道有这个知识点就行。

[/code]

数据类型的自动转换和强制转换,背吧背吧

预备

PHP在PHP 5.x阶段都是完全的
弱类型
的编程语言。所谓弱类型,就是在声明变量的时候,不需要指定变量的类型。我要声明一个整型的变量,我不用在前面非得写上类型,再写变量。

而PHP 7 的性能有很大的提高。实际测试的结果,PHP 7的性能与PHP5.6相比,提升了性能接近200%。在PHP 7 中有些地方,我们可以强制指定类型,也可以不用强制指定类型来声明变量。

我们接来下来讲
强制类型转换
自动类型转换
两个部份。

【默写级别】布尔值的自动类型转换、强制类型转换的英文单词

布尔值的自动类型转换

自动类型转换,就是数据类型在某些情况下,自动会变为其他的类型参与运算。自动类型转换的发生时机是:运算和判断的时候某些值会自动进行转换。

自动类型转换实验室

下面的情况是布尔值判断时的
自动类型转换


整型的0为假,其他整型值全为真

浮点的0.0,布尔值的假。小数点后只要有一个非零的数值即为真。

空字符串为假,只要里面有一个空格都算真。

字符串的0,也将其看作是假。其他的都为真

空数组也将其视为假,只要里面有一个值,就为真。

空也为假

未声明成功的资源也为假

我们针对以上针理的规则一项一项来做实验看看结果。

1. 整型的0为假,其他整型值全为真

```php

<?php

//整型的0,换成整型的其他值试试

bool=0;if(" role="presentation" style="position: relative;">bool=0;if(bool=0;if(bool){

echo '美女美女我爱你';

}else{

echo '凤姐凤姐爱死我,执行假区间咯';

}

?>


**2\. 浮点的0.0,布尔值的假。小数点后只要有一个非零的数值即为真。**

```php

<?php

//浮点类型的的0,换成其他值试试

$bool = 0.0;

if($bool){

echo '美女美女我爱你';

}else{

echo '凤姐凤姐爱死我,执行假区间咯';

}

?>

[/code]

3. 空字符串为假,只要里面有一个空格都算真

```php

<?php

//空字符串,中间没有空格哟。实验完加个空格试试

str=″;if(" role="presentation" style="position: relative;">str=′′;if(str=″;if(str){

echo '美女美女我爱你';

}else{

echo '凤姐凤姐爱死我,执行假区间咯';

}

?>


**4\. 字符串的0,也将其看作是假。其他的都为真**

```

<?php

//0这个字符串哟,试试其他值看看

$str = '0';

if($str){

echo '美女美女我爱你';

}else{

echo '凤姐凤姐爱死我,执行假区间咯';

}

?>

[/code]

5. 空数组也将其视为假,只要里面有一个值,就为真。

```php

<?php

//这个数组当中啥也没放

arr=array();if(" role="presentation" style="position: relative;">arr=array();if(arr=array();if(arr){

echo '美女美女我爱你';

}else{

echo '凤姐凤姐爱死我,执行假区间咯';

}

?>


**6\. 空也为假**

```php

<?php

//声明了一个空的变量$bool

$bool = null;

if($bool){

echo '美女美女我爱你';

}else{

echo '凤姐凤姐爱死我,执行假区间咯';

}

?>

[/code]

7. 未声成功的资源也为假

```php

<?php

//下面这段代码会显示警告,可忽略。暂时只需要对着实验知道效果即可:未声成功的资源也为假

//下面这一块了解意思就行:打开adasfasfasfdsa.txt这个不存在的文件

res=fopen(′adasfasfasfdsa.txt′,′r′);if(" role="presentation" style="position: relative;">res=fopen(′adasfasfasfdsa.txt′,′r′);if(res=fopen(′adasfasfasfdsa.txt′,′r′);if(res){

echo '美女美女我爱你';

}else{

echo '凤姐凤姐爱死我,执行假区间咯';

}

?>


## 其他类型的自动类型转换


自动类型转换在运算时也可以发生。跟所有我们总结的规律和观点一样:先总结、后实验。

只有标量在运算时会产生以下的自动类型转换:

![](http://i.imgur.com/rSvjZKn.png)


动手,你敢动手吗?动手啊!


```php

<?php

//布尔变整型参与运算

$fo = true;


$result = $fo + 10;

//$result 结果为整型的11,因为$fo布尔的true变为了1

//如果$fo的值为0

var_dump($result);


//字符串类型

$str = '419不要爱';

$result = $str + 1;

//结果为420。因为将$str变为了整型的419参与运算

//将419放在字符串中间和结尾试试

var_dump($result);

?>

[/code]

神奇不?呵呵,动手啊,打啊!



总结:

布尔值的true参与运算是会变成整型或者浮点的1

布尔值的false参与运算是会变成整型或者浮点的0

字符串开始处是整型或浮点类型的字符,会转成对应的类型参与运算



强制类型转换

强制类型转换有三种方式:

用后面的三个函数可以完成类型转换,intval()、floatval()、strval()

变量前加上()里面写上类型,将它转换后赋值给其他变量

settype(变量,类型) 直接改变量本身

1. intval()、floatval()、strval()转换

```php

<?php

float=1.23;" role="presentation" style="position: relative;">float=1.23;float=1.23;result = intval(float);//看看结果是不是变了?vardump(" role="presentation" style="position: relative;">float);//看看结果是不是变了?vardump(float);//看看结果是不是变了?vardump(result);

//鸭脖子为整型的5
$yabozi = 5;
$re = floatval($yabozi);
var_dump($re);

//定义整型的变量
$yabozi = 23;
$bian = strval($yabozi);
//强制变成字符串试试
var_dump($bian);


?>

**2\. 变量前加上()里面写上类型,将它转换后赋值给其他变量**
php

<?php

//定义一个变量,我们来变化一下试试

transfer=12.8;//把浮点变为整型" role="presentation" style="position: relative;">transfer=12.8;//把浮点变为整型transfer=12.8;//把浮点变为整型jieguo = (int)transfer;vardump(" role="presentation" style="position: relative;">transfer;vardump(transfer;vardump(jieguo);

//把浮点变为布尔

jieguo=(bool)" role="presentation" style="position: relative;">jieguo=(bool)jieguo=(bool)transfer;

var_dump($jieguo);

//把布尔变整型

bool=true;" role="presentation" style="position: relative;">bool=true;bool=true;jieguo = (int)$bool;

//把浮点变数组
$fo = 250;
$jieguo = (array)$fo;
var_dump($jieguo);


//其他的操作方式,按照文字总结的规律你来试试

?>


**3\. settype(变量,类型) 直接改变量本身**

```php

<?php


//定义浮点变为整型

$fo = 250.18;

//settype第二个参数是int,你实验的时候要记得第二个参数要为字符串类型

settype($fo,'int');

//输出看看结果

var_dump($fo);


?>

[/code]

【来试试】以下是强制类型转换时的特点,每一项你做实验看看对不对:

空转为整型会为整型的0

空转为浮点会为浮点的0

空转为字符串会为空字符串‘’

浮点的123.0转为字符串会为字符串123

浮点的123.2转为字符串会为字符串的123.2

浮点即使小数点再大,它都会被干掉,会舍掉小数点后面的值

如果字符串转为整型的时候,如果数值在前面,会将前面的数值拿出来做为整型的转换值。

settype(变量,'null'); 等价于 unset()一个变量

目标变量=(类型)" role="presentation" style="position: relative;">目标变量=(类型)目标变量=(类型)操作变量 只会改变目标变量的类型,不会改变原变量的类型,Settype是改变原值

```php

<?php

//小可爱,记得自己做实验,验证上面的9点哟

$t=12.9;

settype($t,'int');

var_dump($t);


?>

```

来自为知笔记(Wiz)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: