zoukankan      html  css  js  c++  java
  • php弱类型比较 simple_php wp

    打开是一小段php的代码:

    考点是php的弱口令比较,分析一下:

    掌握php弱类型比较
    php中其中两种比较符号:
    ==:先将字符串类型转化成相同,再比较
    ===:先判断两种字符串的类型是否相等,再比较
    字符串和数字比较使用==时,字符串会先转换为数字类型再比较
    var_dump('a' == 0);//true,此时a字符串类型转化成数字,因为a字符串开头中没有找到数字,所以转换为0
    var_dump('123a' == 123);//true,这里'123a'会被转换为123
    
    var_dump('a123' == 123);//false,因为php中有这样一个规定:字符串的开始部分决定了它的值,如果该字符串以合法的数字开始,则使用该数字至和它连续的最后一个数字结束,否则其比较时整体值为0。
    举例:
    var_dump('123a1' == 123);//true
    var_dump('1233a' == 123);//false

    <、>、<=、>=都存在和==相同的弱类型

    <?php
    show_source(__FILE__);
    include("config.php");
    $a=@$_GET['a'];
    $b=@$_GET['b'];
    if($a==0 and $a){
        echo $flag1;
    }
    if(is_numeric($b)){
        exit();
    }
    if($b>1234){
        echo $flag2;
    }
    ?> 
    

    (1)这里包含了config.php
    (2)url接收参数a和b的值
    (3)如果$a等于0 and $a,输出$flag1
    (4)如果$b是数字或者字符串那么退出当前脚本
    (5)如果$b>1234,输出$flag2

    if(true and true){ //这里$a==0 and $a,==为弱类型比较,字符串开头都为0,所以0==0 and 'b',因为字符串c存在,所以and后面也为true,所以双true,最后if括号里为true,执行if下面的语句
    echo $flag1;
    }
    if(is_numeric(2222a)){
    exit();
    }
    if(2222a>1234){
    echo $flag2;

     

  • 相关阅读:
    捕获异常的两种方式Exception
    线程的随机性
    单例模式简单解析--Singleton 单例模式(懒汉方式和饿汉方式)
    LeetCode 116. 填充每个节点的下一个右侧节点指针
    LeetCode 129. 求根到叶子节点数字之和
    LeetCode 124. 二叉树中的最大路径和
    LeetCode 119. 杨辉三角 II
    LeetCode 118. 杨辉三角
    LeetCode 113. 路径总和 II
    LeetCode 114. 二叉树展开为链表
  • 原文地址:https://www.cnblogs.com/jentleTao/p/13228330.html
Copyright © 2011-2022 走看看