PHP知识点累积

本文介绍了PHP中可变变量的概念与用法,并探讨了其在数组和类属性中的应用。同时,文章强调了使用可变变量时可能遇到的安全隐患及如何避免这些问题。
  1. php可变变量
    一个变量的变量名可以动态的设置和使用
    <?php
    $a = 'hello';
    $$a = 'world';
    echo "$a ${$a}";
    //两个变量都被定义了:$a 的内容是“hello”并且 $hello 的内容是“world”。
    //等价于:echo "$a $hello";
    //输出:' hello world';
    ?>

    对于数组:一种用 ${$a[1]},另一种情况情况用 ${$a}[1]
    类的属性也可通过可变变量来访问:对于 $foo->$bar,会在本地范围来解析 $bar 并且其值将被用于 $foo 的属性名。
  2. 安全隐患

    1. 字符串过滤,表单验证: htmlspecialchars,is_numeric

    2. 240610708 和 QNKCDZO md5值类型相似,但并不相同,在“==”相等操作符的运算下,结果返回了true,攻击者可伪造任意 0e[0-9].*的形式绕过为密码的判断对记录数据进行篡改删除等操作。

  3. func_get_args()
    1. 获取函数参数列表的数组
    2. func_num_args()
    3. func_get_arg()
  4. strcpy()
    1. strcpy(s1,s2);strcpy函数的意思是:把字符串s2中的内容copy到s1中,连字符串结束标志也一起copy.
      这样s1在内存中的存放为:ch\0;
    2. strlen函数的意思是测试字符串的字符长度,不含字符串结束标志的。
      sizeof是个运算符,它的结果是字符串在内存中的所占字节大小,它要把\0算进去的。
  5. echo,print,print_r,printf,sprintf,var_dump 函数之间的区别与用法详解
    1. echo函数:输出函数,是命令,不能返回值。echo后面可以跟很多个参数,之间用分号隔开;
    2. echo ‘1+5=’ . 5+1; //输出 2
    3. echo ‘1+5=’ , 5+1; //输出 1+5=6
    4. PHP中字符串变成数字的机制:如果将一个字符串强制转换成一个数字.PHP会去搜索这个字符串的开头.如果开头是数字就转换.如果不是就直接返回0.回到刚才的’1+5=5’.既然这个字符串是’1+5=5’,所以强制类型转换后就应该是1了.
    5. print() 和 echo() 用法一样,但是echo速度会比print快一点点,注意print总是返回1的;
    6. print_r函数打印关于变量的易于理解的信息。print_r有两个参数,第一个是变量,第二个可设为true,如果设为true,则会返回字符串,否则返回布尔值TRUE;
    7. printf函数返回一个格式化后的字符串。如果 % 符号多于 arg 参数,则您必须使用占位符。占位符被插入 % 符号之后,由数字和 “$” 组成。可使用数字指定显示的参数:printf(“My name is %1$s %1$s”,”55nav”, “com”); // 在s前添加1$或2$…..表示后面的参数显示的位置,此行输出 My name is 55nav 55nav因为只显示第一个参数两次;
    8. sprintf函数使用方法和printf一样,唯一不同的就是该函数把格式化的字符串写写入一个变量中,而不是输出来;
    9. var_dump输出变量的内容、类型或字符串的内容、类型、长度。常用来调试。
  6. addslashes和mysql_real_escape_string.都是为了使数据安全的插入到数据库中而进行过滤.那么这两个函数到底是有什么区别呢?
    1. PHP手册上addslashes转义的字符是单引号(’)、双引号(”)、反斜线(\)与NUL(NULL 字符);
    2. mysql_real_escape_string必须是连接数据库之后才能使用,所以以后也就用addslashes好了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值