PHP数值(一)

数值

数值有8种类型:

  • 标量类型
    • 整型 int
    • 浮点型 (小数) float
    • 字符串 string
    • 布尔型 bool
  • 复合类型
    • 数组 array
    • 对象 object
  • 特殊类型
    • 资源 resource
    • 空 null

整型

整型 int

  • 值的写法
  • 最大值
    • 可通过 PHP_INT_MAX 来获取.
    • 区分
      • 32位: 约21亿
      • 64位: 9223372036854775807
    • 一旦超过 最大整型值, 则会变为 浮点值
  • 判断是否为 int
    is_int( 变量 )
  • 进制
    基数范围 前缀
    二进制 0-1 0b
    八进制 0-7 0
    十进制 0-9 无
    十六进制 0-9 a-f 0x
    • 任意进制 -> 十进制
      公式: 基数 * 当前进制 ^ 次方
      个位: 0次方
      十位: 1次方
      百位: 2次方
      千位: 3次方
      … 以此类推
      • 2048 1024 512 256
      • 128 64 32 16
      • 8 4 2 1
    • 十进制 -> 任意进制
      • 规则:十进制 除以 指定进制, 一直除到商小于指定进制,
      • 结果: 倒取余数
<?php
$num = PHP_INT_MAX;
var_dump( $num ); 
echo '<br>';
$num = $num + 1;
var_dump( $num );
echo '<br>';
$num = 500;
var_dump( is_int($num) );
$num = 500.6;
var_dump( is_int($num) );
echo '<hr>';
$num = 0b1110;  # 1*2^3 + 1*2^2 + 1*2^1 + 0*2^0 = 14
$num = 0b0101;
$num = 0b1100;  
$num = 0b10101001; 
$num = 0b10001000;
$num = 0b01110111;  # 1少的时候用 加法
                    # 1多的时候用 减法
echo $num;
echo '<hr>';
$num = 012;
echo $num;
echo '<hr>';    
$num = 0x2b;
echo $num; 
?>

浮点型

浮点型 float

  • 值的写法
  • 科学计数法
    xEy => x * 10的y次方
  • 如何判断是否为 浮点型
    is_float( 变量 )
  • 有效位数
    从前向后, 从非0数字开始, 保留14位
  • 浮点运算
    二进制对于小数的操作不稳定.
    不推荐用 浮点型做比较等值运算
<?php
$num = 1.5;
$num = -1.5;
$num = 2e5;
var_dump($num);
$num = 2e5;
$num = 10;
var_dump( is_float( $num ));
$num = 0.1234567890123456789;
var_dump($num);
$num = 0.0001234567890123456789;
var_dump($num);
$num = 123.45678901234567890123;
var_dump($num);
$num1 = 0.1 + 0.2;      # 0.3000000000000000000000000000000000000005
$num2 = 0.3;
echo $num1; 
echo '<br>';
echo $num2;
echo '<br>';
if ($num1 == $num2) {
    # num1 与 num2 相等时的区域
    echo "Yes";
}else{
    # num1 与 num2 不等时的区域
    echo "No";
}
?>

布尔型

布尔型 bool boolean

  • 值的写法
    • true 对/好/是/正确/可行 …
    • false 错/坏/否/错误/不可行…
    • 布尔值代表的两种状态
  • 作用
    在比较, 判断时才会使用bool.
  • 等值
    有以下7种值与false等价的,其余都是与true等价
    • false
    • 0
    • 0.0
    • 空符串or零字符串
    • 空数组
    • 空null
    • 未定义变量
  • 如何判断是否为bool型
    is_bool()
<?php
var_dump( 1>2 );
var_dump( 1>0 );
if ( false == false ) {
    echo "yes <br>";
}else{
    echo "no <br>";
}
if ( false == 0 ) {
    echo "yes <br>";
}else{
    echo "no <br>";
}
if ( false == 0.0 ) {
    echo "yes <br>";
}else{
    echo "no <br>";
}
// 在引号中, 只有 空引号 和 零引号是与false 等价, 其余都不等价
if ( false == "" ) {
    echo "yes <br>";
}else{
    echo "no <br>";
}
if ( false == "0" ) {
    echo "yes <br>";
}else{
    echo "no <br>";
}
if ( false == "0.0" ) {
    echo "yes <br>";
}else{
    echo "no <br>";
}//输出 no
if ( false == " " ) {
    echo "yes <br>";
}else{
    echo "no <br>";
}//输出 no
if ( false == "00" ) {
    echo "yes <br>";
}else{
    echo "no <br>";
}//输出 no
# [] 代表空数组
if ( false == [] ) {
    echo "yes <br>";
}else{
    echo "no <br>";
}
# null 代表 空类型
if ( false == null ) {
    echo "yes <br>";
}else{
    echo "no <br>";
}
# $xxx 是未定义变量
# @ 错误抑制符
if ( false == @$xxx ) {
    echo "yes <br>";
}else{
    echo "no <br>";
}
?>

字符串

字符串 string

  • 值的写法

    • 单引号

    • 双引号

    • heredoc结构
      <<<开始符

      结束符;

      • 开始符的后面不能有任何的字符, 包括空格
      • 结束符的前后都不能有任何字符, 包括空格
      • 开始符 和 结束符 必须一致
    • 单双引号一般用于 单行

    • heredoc结构一般用于 多行

  • 值的长度
    最大长度: 2G

  • 判断类型

    • 如何判断是否为 字符串 is_string()
    • 检测是否为数字 或 数字字符串 is_numeric()
    • 检测是否为标量类型 is_scalar()
<?php
$str="落霞与孤鹜齐飞,秋水共长天一色";
$str='落霞与孤鹜齐飞,秋水共长天一色';
# heredoc结构
$str = <<<tfboy
    <table border="1">
        <caption>tfboys团队成员</caption>
        <tr>
            <td>王俊凯</td>
        </tr>
        <tr>
            <td>王源</td>
        </tr>
        <tr>
            <td>易烊千玺</td>
        </tr>
    </table>
tfboy;
echo $str;
var_dump($str);
echo '<hr>';
$str = 100;    # 数字
var_dump( is_numeric($str) );
$str = '100';  # 数字字符串
var_dump( is_numeric($str) );
# 具有特殊字符的 字符串
$str = '2e5';
$str = '2.5';
var_dump( is_numeric($str) );
# 具有普通的字符
$str = '100abc'; 
var_dump( is_numeric($str) );//输出false
echo '<hr>';
$str = 100;
$str = 100.5;
$str = true;
$str = "abc";
$str = null;
var_dump( is_scalar($str) );//输出false
?>

字符串单双引号区别

  • 单:
    • 不能识别变量
    • 不能识别转义字符, 但能识别转义 转义字符
  • 双:
    • 能识别变量, 推荐在双引号用 {} 包住变量
    • 能识别转义字符
  • 共同点:
    单双可以互插, 不能自插
  • 转义字符:
    • 转义符: \
    • 作用:
      • 能将 普通字母 具有特殊意义
      • 取消 特殊意义的 字母
    • 常见转义字符
      n \n 换行
      t \t 制表符 Tab
      r \r 回车
      ...
    • 本身自带特殊意义的字符:
      ' \'
      " \"
      $ \$
      \ \\
      ...
<?php
$name1 = 'Bobby';
$name2 = 'Hobby';
$str = '$name1 和 $name2之间有什么区别? ';
echo $str;
// $str = "$name1 和 $name2之间有什么区别?  <br>";
$str = "{$name1}{$name2}之间有什么区别?  <br>";
echo $str;
echo '<hr>';
$str = "\$name1 和 \$name2 之间有什么区别?  <br>";
echo $str;
$str = "\$name1 和 \$name2 之间有什么\n区别?  <br>";
echo $str;
echo '<hr>';
$str = 'Bobby has a Hobby. you don\'t have Hobby <br>';
echo $str;
$str = 'Bobby has a Hobby. you don"t have Hobby <br>';
echo $str;
$str = "Bobby has a Hobby. you don\"t have Hobby <br>";
echo $str;
$str = "Bobby has a Hobby. you don't have Hobby <br>";
echo $str;
?>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值