zoukankan      html  css  js  c++  java
  • PHP变量

    1.PHP中变量的类型

     $age =12;

    等同于如下

     如果新建的是一个null类型的数据呢?

    $age = null;

    2.变量的检测isset()

    技术细节:2.1 isset函数可以是多个参数,同时检测变量存在与否,多个参数中有一个不存在的,都返回false

      

     2.2一旦变量unset后,就等同于把变量扔出花名册,所以是false

     2.3 更多isset情况见

    https://www.cnblogs.com/html55/p/10515585.html

    2.4 “同时要注意的是 null 字符("")并不等同于 PHP 的 NULL 常量。”  文档上的这句话,不太理解是啥意思。。。网上查了下,是这样说的:如下:

    NULL 字符是变量为空 $t = ''; 变量有值,不过是空,isset()是TRUE
    NULL 常量是 $t = null; 变量没有值,连空都不是,isset()是FALSE

    2.5 isset还可以检测数组中的某项

     1 <?php
     2     $a = array (
     3         'test' => 1, 
     4         'hello' => NULL, 
     5         'pie' => array('a' => 'apple')
     6     );
     7      
     8     var_dump(isset($a['test']));            // TRUE
     9     var_dump(isset($a['foo']));             // FALSE ,不存在或为null
    10     var_dump(isset($a['hello']));           // FALSE ,不存在或为null
    11 
    12     // 更深层次检测
    13     var_dump(isset($a['pie']['a']));        // TRUE
    14     var_dump(isset($a['pie']['b']));        // FALSE,不存在或为null
    15     var_dump(isset($a['cake']['a']['b']));  // FALSE,不存在或为null
    16 
    17 ?>

    注意

     1 <?php
     2     $a = array (
     3         'test' => 1, 
     4         'hello' => NULL, 
     5         'pie' => array('a' => 'apple')
     6     );
     7     //array_key_exists 检测数组是否存在某个键值
     8         var_dump(array_key_exists('hello', $a)); // TRUE,
     9         //注意$a["hello"]值为null,array_key_exists结果为true,而isset结果为false
    10         var_dump(array_key_exists('kkk', $a)); // false
    11 
    12 ?>                    

    3.变量类型的检测gettype,或is_* 系列

    注意:不要使用 gettype() 来测试某种类型,因为其返回的字符串在未来的版本中可能需要改变。此外,由于包含了字符串的比较,它的运行也是较慢的。使用 is_* 函数代替。

     

    4.变量打印

    字符串、数字用echo

    echo true; //显示1 

    echo false;//什么都不显示

    数组用print_r

    var_dump();更详细

    5.变量类型的转化

    php中变量类型是可以转换的,比较方便,最常见的是数字和字符串相互转,数字、字符串和布尔值相互转。

     5.1.字符串转数字

     1 <?php
     2 
     3 /**
     4 1.字符串转化为数字
     5   字符串参与运算的时候,自动转化为数字,那转化规则是?——从左到右截取,直到碰到不合法的数字时停止(注意php认为,小数点是合法的,但是%百分号是不合法的),截取出来的部分转成数字
     6   如:
     7   'abcd3322'    转成0
     8   '3322abc'        转成3322
     9   '33.22ddd543'    转成33.22
    10   '565%da'        转成565
    11 */
    12 
    13     $a = '33%ddd543'; //变量为字符串
    14     var_dump($a+3);//int(36),php中变量自动转化
    15 
    16 ?>

    5.2.数字转字符串

    参与字符串拼接时,自动转化,比如123转为'123'

    5.3到布尔型的转化

    以下值都被当成布尔值的假:'',0,'0',0.0,false,null,array()  就是,空字符串,字符串0,数字0,数字零点零,false,null,空数组

    <?php
    
        //如果在C和java中,空字符串和false是不能进行比较的
        //但是php中可以
        if ('' == false) {
            # code...
        }
    
    ?>

    6.赋值分为传值赋值和引用赋值

    细节如下:

    https://www.cnblogs.com/html55/p/10577366.html

     7.动态变量名

    就是一个变量的值另一个变量的变量名留个坑,主要应用在哪里

    $$$abc

    8.算术运算符

    得到

  • 相关阅读:
    xargs 原理&使用
    django1.7 HTML模板中{%url%}的使用
    2017/2/27
    对django rest_framework的个人理解
    restful api设计理念
    web service的理解
    如何重启mysql服务
    Navicat中MySQL server has gone away错误怎么办【转载】
    Why getting this error “django.db.utils.OperationalError: (1050, ”Table 'someTable' already exists“)”
    转:android service总结
  • 原文地址:https://www.cnblogs.com/html55/p/11796960.html
Copyright © 2011-2022 走看看