php基础第二篇

    xiaoxiao2021-03-25  73

    首先就来说一下,数据类型转换的一个问题:

    我们知道小的数据类型可以自动向大的数据类型转换,从而不会造成精度缺失的问题。

    这里就说一下php的运算规则:

    运算数在参加运算的时候,需要将数据类型转换为相同的数据类型参与运算,至于怎么来转,那就是说,小的自动变成大的数据类型。依照大的数据类型为基准。

    我们要对一个变量进行数据类型转换,直接在变量前面加上(类型名)就可以了。

    下面来说一下细节:

    php字符串可以看成数组处理,也就是说可以通过下标来取出里面的单个字符,只是它是字符串类型。这里符合c语言的一种处理方法。

    header("Content-type:text/html;charset=utf-8");

    $str1="love";

    echo $str1[0]."<br/>";

    echo $str1[1]."<br/>";

    echo $str1[2]."<br/>";

    echo "好像字符串不能处理中文<br/>";

    php中的字符串也是以’\0’来处理,转换成ascii码就是0

    而字符串里面的空格,变成ascii码就是32,空字符。

    简单来说一下运算符优先级

    不管怎么样,括号的优先级始终是最高的,然后是点的优先级也比较高。

    正负的优先级也算是比较高的。过了就是++,--,按位取反(~,逻辑非(!)的优先级也算是比较高的,都是第二级。位运算符的优先级比逻辑运算符的优先级高,同时,按位与(&)与逻辑与(&&)的优先级相对来说又要高一点。赋值运算的优先级是最低的,上面就是三目运算符的优先级(倒数第二级)。

    下面简单来说一下php转换规则:

    下面是转换成字符串的一些规则:

    一个整数或者浮点数被转换成数字的字面样式的字符串。

    一个boolean TRUE 值被转换成字符串 1,boolean FASLE 被转换成””

    数组被转换成字符串’array’

    资源总是被转变成”Resource id #1”这种结构的字符串

    NULL总是转变成空的字符串

    下面是转换成整型的一些规则:

    从布尔值转换 FALSE->0 TRUE->1

    从浮点数转换的时候,向下面取整

    从字符串转换的时候,如果字符串没有包含. eE,并且数字值符合整数类型限定,可以被人认为是一个int,否则被认定是一个float.字符串的开始部分给定了它的值,如果字符串以合法数字开始,这个数字可以直接使用。否则值就是0

    我们看一下下面的代码处理:

    $bool_value1=true;//1

    $bool_value2=false;//0

    $str_value1='A';//ascii码是65,很明显会变成0,因为它不符合整数类型限定

    $str_value2="asx";//0,不符合数字规定,当成0进行处理

    $str_value3="3.1415926asd";//因为有.,所以就变成3.1415926,当成一个整型处理

    $str_value4="6dcbuyd25sc";//6

    echo $bool_value1+$bool_value2."<br/>";//结果就是1+0=1

    echo $str_value1+$str_value2."<br/>";//0+0=0

    echo $str_value3+$str_value4."<br/>";//3.1415926+6=9.1415926

    下面是转换成bool的一些规定:

    当转换成boolean时,以下值被认为是FALSE

    布尔值FALSE本身

    整型0

    浮点数值0.0

    空字符串,以及字符串”0”(注意“00”“0.0”被认为是TRUE),字符串单个0被认为是假的。

    空数组

    特殊类型NULL

    上面除了浮点数0.0是假,其余的字符串双个0都是真。

    $value1="0";//这个是假

    if($value1)

    {

    echo $value1."是真的<br/>";

    }else

    {

    echo $value1."是假的<br/>";//会走这一条路线

    }

    $value2="0.0";//这个是真的

    if($value2)

    {

    echo $value2."是真的<br/>";//会走这一条路线

    }else

    {

    echo $value2."是假的<br/>";

    }

    我们下面笼统的来说一下,运算符。

    什么算术运算符+ - * / %就不多说了,运算符优先级也是比较高的。

    乘除取余优先级是3

    +-的优先级是4

    下面来说一下赋值运算符=,这个运算符的优先级也是最低的。

    再来说一下比较运算符

    ==

    =

    <>

    !==

    <

    >

    上面的优先级大致在第六级七级

    在来说一下,递增,递减运算符。++ --这个优先级与正(+)和负(-)优先级一样高,而且

    注意这个运算符的前++与后++是不一样的。前--与后--也是不一样的。

    不同的运算顺序也是不一样的。

    一般来说后++就是先使用在自增,而前++就是先自增在使用。当然--的用法一样。

    在考虑一个数的结果的时候,我们呢注意考虑一个数的时候,考虑这个数在此时的值是什么?

    下面我们来说一下逻辑运算符

    其实这些运算符对我们编写程序来说特别重要,常见的逻辑运算符,比如&&(逻辑与)||(逻辑或)!$a(逻辑非)对于逻辑非来说,如果一个数为假,那么!就为真,如果一个数为真,非(!)的结果就为假。这里插足一个按位非(~),就是位运算中0变成1,1变成0

    来说一下^(异或),这个也就是说,两个数参与运算,不同为1,相同为0

    上面这个逻辑非(!)与按位非(~)这两个运算符优先级还是比较高的,都是排在了2级。

    下面就该来说位运算符。

    php基础第二篇就先说到这。下次再来所一篇。

    转载请注明原文地址: https://ju.6miu.com/read-16740.html

    最新回复(0)