• php 5.4.25部分函数


    Variable handling 函数

    1.boolval();

    2.debug_zval_dump(&$var1);输出结果:&string(11) "Hello World" refcount(3)
    3.doubleval();此函数是 floatval() 的别名。

    4.empty($var);检查一个变量是否为空;如果 var 是非空或非零的值,则 empty() 返回 FALSE。换句话说,""0"0" NULLFALSEarray()var $var; 以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE

    除了当变量没有置值时不产生警告之外,empty()(boolean) var 的反义词。参见转换为布尔值获取更多信息。

    5.floatval()返回变量 varfloat 数值。var 可以是任何标量类型。你不能将 floatval() 用于数组或对象

    <?php
    $var 
    '122.34343The';
    $float_value_of_var floatval ($var);
    print 
    $float_value_of_var// 打印出 122.34343
    ?>

    6.array get_defined_vars();此函数返回一个包含所有已定义变量列表的多维数组,这些变量包括环境变量、服务器变量和用户定义的变量。
    <?php
    $b 
    = array(1,1,2,3,5,8);

    $arr get_defined_vars();

    // 打印 $b
    print_r($arr["b"]);

    // 打印 PHP 解释程序的路径(如果 PHP 作为 CGI 使用的话)
    // 例如:/usr/local/bin/php
    echo $arr["_"];

    // 打印命令行参数(如果有的话)
    print_r($arr["argv"]);

    // 打印所有服务器变量
    print_r($arr["_SERVER"]);

    // 打印变量数组的所有可用键值
    print_r(array_keys(get_defined_vars()));
    ?>

    7.string get_resource_type ( resource $handle );此函数返回一个字符串,用于表示传递给它的 resource 的类型。如果参数不是合法的 resource,将产生错误。

    <?php
    $c 
    mysql_connect();
    echo 
    get_resource_type($c)." ";
    // 打印:mysql link

    $fp fopen("foo","w");
    echo 
    get_resource_type($fp)." ";
    // 打印:file

    $doc new_xmldoc("1.0");
    echo 
    get_resource_type($doc->doc)." ";
    // 打印:domxml document
    ?>

    8.string gettype ( mixed $var );

     

    返回 PHP 变量的类型 var.

     

    Warning

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

    使用 is_* 函数代替。

     

    返回的字符串的可能值为:

     

    • boolean”(从 PHP 4 起)
    • integer
    • double”(由于历史原因,如果是 float 则返回“double”,而不是“float”)
    • string
    • array
    • object
    • resource”(从 PHP 4 起)
    • NULL”(从 PHP 4 起)
    • “user function”(只用于 PHP 3,现已停用)
    • “unknown type”

     

    对于 PHP 4,你应该使用 function_exists()method_exists() 取代先前将 gettype() 作用于函数的用法。

     

    参见 settype()is_array()is_bool()is_float()is_integer()is_null()is_numeric()is_object()is_resource()is_scalar()is_string()

     

     

        function myGetType($var)
        {
            if (
    is_array($var)) return "array";
            if (
    is_bool($var)) return "boolean";
            if (
    is_float($var)) return "float";
            if (
    is_int($var)) return "integer";
            if (
    is_null($var)) return "NULL";
            if (
    is_numeric($var)) return "numeric";
            if (
    is_object($var)) return "object";
            if (
    is_resource($var)) return "resource";
            if (
    is_string($var)) return "string";
            return
    "unknown type";
        }
    9.
    int intval ( mixed $var [, int $base = 10 ] );通过使用指定的进制 base 转换(默认是十进制),返回变量 varinteger 数值。 intval() 不能用于 object,否则会产生 E_NOTICE 错误并返回 1。

     

    返回值:

    成功时返回 var 的 integer 值,失败时返回 0。 空的 array 返回 0,非空的 array 返回 1。

     

    最大的值取决于操作系统。 32 位系统最大带符号的 integer 范围是 -2147483648 到 2147483647。举例,在这样的系统上, intval('1000000000000') 会返回 2147483647。64 位系统上,最大带符号的 integer 值是 9223372036854775807。

     

    字符串有可能返回 0,虽然取决于字符串最左侧的字符。 使用 整型转换 的共同规则。

     

    10.bool is_array ( mixed $var );检测变量是否是数组;如果 vararray,则返回 TRUE,否则返回 FALSE

    11.bool is_bool ( mixed $var )检测变量是否是布尔型 ;如果 varboolean 则返回 TRUE

    12.is_callable()检测参数是否为合法的可调用结构 ;

    bool is_callable ( callable $name [, bool $syntax_only = false [, string &$callable_name ]] )

    验证变量的内容能否作为函数调用。 这可以检查包含有效函数名的变量,或者一个数组,包含了正确编码的对象以及函数名。

    参数:name

    要检查的回调函数。

    syntax_only

    如果设置为 TRUE,这个函数仅仅验证 name 可能是函数或方法。 它仅仅拒绝非字符,或者未包含能用于回调函数的有效结构。有效的应该包含两个元素,第一个是一个对象或者字符,第二个元素是个字符。

    callable_name

    接受“可调用的名称”。下面的例子是“someClass::someMethod”。 注意,尽管 someClass::SomeMethod() 的含义是可调用的静态方法,但例子的情况并不是这样的。

    返回值:如果 name 可调用则返回 TRUE,否则返回 FALSE

     

    Example #1 is_callable() 例子

     

    <?php
    //  How to check a variable to see if it can be called
    //  as a function.

    //
    //  Simple variable containing a function
    //

    function someFunction() 
    {
    }

    $functionVariable 'someFunction';

    var_dump(is_callable($functionVariablefalse$callable_name));  // bool(true)

    echo $callable_name" ";  // someFunction

    //
    //  Array containing a method
    //

    class someClass {

      function 
    someMethod() 
      {
      }

    }

    $anObject = new someClass();

    $methodVariable = array($anObject'someMethod');

    var_dump(is_callable($methodVariabletrue$callable_name));  //  bool(true)

    echo $callable_name" ";  //  someClass::someMethod

    ?>

     

     

    13.is_double() 是 is_float() 的别名函数

    14.bool is_float ( mixed $var )检测变量是否是浮点型;如果 varfloat 则返回 TRUE,否则返回 FALSE

    15.bool is_int ( mixed $var )检测变量是否是整数;如果 varinteger 则返回 TRUE,否则返回 FALSE

     

    16.is_integer是 is_int() 的别名函数

    17.is_long 是 is_int() 的别名函数

    18. bool is_null ( mixed $var )检测变量是否为 NULL ;

    19.bool is_numeric ( mixed $var )检测变量是否为数字或数字字符串 ;如果 var 是数字和数字字符串则返回 TRUE,否则返回 FALSE

    20.bool is_object ( mixed $var )检测变量是否是一个对象;如果 var 是一个 object 则返回 TRUE,否则返回 FALSE

    21.is_real() 是 is_float() 的别名函数

    22.bool is_resource ( mixed $var检测变量是否为资源类型 ;如果给出的参数 varresource 类型,is_resource() 返回 TRUE,否则返回 FALSE

    23.bool is_scalar ( mixed $var )检测变量是否是一个标量 ;如果给出的变量参数 var 是一个标量,is_scalar() 返回 TRUE,否则返回 FALSE。标量变量是指那些包含了 integerfloatstringboolean的变量,而 arrayobjectresource 则不是标量。

     

     

     

     

     

     

    24.bool is_string ( mixed $var )检测变量是否是字符串;如果 varstring 则返回 TRUE,否则返回 FALSE

     

    25.bool isset ( mixed $var [, mixed $... ] )检测变量是否设置;

    检测变量是否设置,并且不是 NULL

     

    如果已经使用 unset() 释放了一个变量之后,它将不再是 isset()。若使用 isset() 测试一个被设置成 NULL 的变量,将返回 FALSE。同时要注意的是一个 NULL 字节("")并不等同于 PHP 的 NULL 常数。

    返回值:如果 var 存在并且值不是 NULL 则返回 TRUE,否则返回 FALSE

     

     

    Example #1 isset() 例子

    <?php

    $var 
    '';

    // 结果为 TRUE,所以后边的文本将被打印出来。
    if (isset($var)) {
        echo 
    "This var is set so I will print.";
    }

    // 在后边的例子中,我们将使用 var_dump 输出 isset() 的返回值。
    // the return value of isset().

    $a "test";
    $b "anothertest";

    var_dump(isset($a));      // TRUE
    var_dump(isset($a$b)); // TRUE

    unset ($a);

    var_dump(isset($a));     // FALSE
    var_dump(isset($a$b)); // FALSE

    $foo NULL;
    var_dump(isset($foo));   // FALSE

    ?>

     

    这对于数组中的元素也同样有效:

     

    <?php

    $a 
    = array ('test' => 1'hello' => NULL'pie' => array('a' => 'apple'));

    var_dump(isset($a['test']));            // TRUE
    var_dump(isset($a['foo']));             // FALSE
    var_dump(isset($a['hello']));           // FALSE

    // 键 'hello' 的值等于 NULL,所以被认为是未置值的。
    // 如果想检测 NULL 键值,可以试试下边的方法。 
    var_dump(array_key_exists('hello'$a)); // TRUE

    // Checking deeper array values
    var_dump(isset($a['pie']['a']));        // TRUE
    var_dump(isset($a['pie']['b']));        // FALSE
    var_dump(isset($a['cake']['a']['b']));  // FALSE

    ?>

    26.bool print_r ( mixed $expression [, bool $return ] )打印关于变量的易于理解的信息。

    print_r() 显示关于一个变量的易于理解的信息。如果给出的是 stringintegerfloat,将打印变量值本身。如果给出的是 array,将会按照一定格式显示键和元素。object 与数组类似。

    记住,print_r() 将把数组的指针移到最后边。使用 reset() 可让指针回到开始处。

    如果想捕捉 print_r() 的输出,可使用 return 参数。若此参数设为 TRUEprint_r() 将不打印结果(此为默认动作),而是返回其输出。

    <?php
        $b 
    = array ('m' => 'monkey''foo' => 'bar''x' => array ('x''y''z'));
        
    $results print_r ($btrue); //$results 包含了 print_r 的输出结果
    ?>
    27.string serialize ( mixed $value )产生一个可存储的值的表示

    serialize() 返回字符串,此字符串包含了表示 value 的字节流,可以存储于任何地方。

    这有利于存储或传递 PHP 的值,同时不丢失其类型和结构。

    想要将已序列化的字符串变回 PHP 的值,可使用 unserialize()serialize() 可处理除了 resource 之外的任何类型。甚至可以 serialize() 那些包含了指向其自身引用的数组。你正 serialize() 的数组/对象中的引用也将被存储。

    当序列化对象时,PHP 将试图在序列动作之前调用该对象的成员函数 __sleep()。这样就允许对象在被序列化之前做任何清除操作。类似的,当使用 unserialize() 恢复对象时, 将调用 __wakeup() 成员函数。

    <?php
    // $session_data 是包含了当前用户 session 信息的多维数组。
    // 我们使用 serialize() 在请求结束之前将其存储到数据库中。

    $conn odbc_connect ("webdb""php""chicken");
    $stmt odbc_prepare ($conn,
          
    "UPDATE sessions SET data = ? WHERE id = ?");
    $sqldata = array (serialize($session_data), $PHP_AUTH_USER);
    if (!
    odbc_execute ($stmt, &$sqldata)) {
        
    $stmt odbc_prepare($conn,
         
    "INSERT INTO sessions (id, data) VALUES(?, ?)");
        if (!
    odbc_execute($stmt, &$sqldata)) {
        
    /* 出错 */
        
    }
    }
    ?>
    28.bool settype ( mixed &$var , string $type )设置变量的类型;将变量 var 的类型设置成 type
    参数:

    var

    要转换的变量。

    type

    type 的可能值为:

     

    • “boolean” (或为“bool”,从 PHP 4.2.0 起)
    • “integer” (或为“int”,从 PHP 4.2.0 起)
    • “float” (只在 PHP 4.2.0 之后可以使用,对于旧版本中使用的“double”现已停用)
    • "string"
    • "array"
    • "object"
    • “null” (从 PHP 4.2.0 起)

    返回值:成功时返回 TRUE, 或者在失败时返回 FALSE

     

    Example #1 settype() 示例

     

    <?php
    $foo 
    "5bar"// string
    $bar true;   // boolean

    settype($foo"integer"); // $foo 现在是 5   (integer)
    settype($bar"string");  // $bar 现在是 "1" (string)
    ?>
    29.string strval ( mixed $var )获取变量的字符串值

     

    返回 varstring 值。 参见 string 文档获取更多关于字符串转换的信息。

     

    var 可以是任何标量类型。不能将 strval() 用于数组或对象。

    30.mixed unserialize ( string $str )从已存储的表示中创建 PHP 的值 ;

    unserialize() 对单一的已序列化的变量进行操作,将其转换回 PHP 的值。

    参数:

    str

    序列化后的字符串。

     

    若被解序列化的变量是一个对象,在成功地重新构造对象之后,PHP 会自动地试图去调用 __wakeup() 成员函数(如果存在的话)。

     

    Note: unserialize_callback_func 指令

    如果在解序列化的时候需要实例化一个未定义类,则可以设置回调函数以供调用(以免得到的是不完整的 object “__PHP_Incomplete_Class”)。可通过 php.iniini_set().htaccess 定义‘unserialize_callback_func’。每次实例化一个未定义类时它都会被调用。若要禁止这个特性,只需置空此设定。

     

    返回值:

    返回的是转换之后的值,可为 integerfloatstringarrayobject

     

    如果传递的字符串不可解序列化,则返回 FALSE,并产生一个 E_NOTICE

     

    Example #1 unserialize() 例子

    <?php
    // 这里,我们使用 unserialize() 装载来自数据库的 $session_data 数组中的会话数据。
    // 此例是描述 serialize() 的那个例子的补充。

    $conn odbc_connect("webdb""php""chicken");
    $stmt odbc_prepare($conn"SELECT data FROM sessions WHERE id = ?");
    $sqldata = array($_SERVER['PHP_AUTH_USER']);
    if (!
    odbc_execute($stmt$sqldata) || !odbc_fetch_into($stmt$tmp)) {
        
    // 如果执行出错或返回错误,则初始化为空数组
        
    $session_data = array();
    } else {
        
    // 现在我们需要的是 $tmp[0] 中已序列化的数据。
        
    $session_data unserialize($tmp[0]);
        if (!
    is_array($session_data)) {
            
    // 出错,初始化为空数组
            
    $session_data = array();
        }
    }
    ?>

     

    Example #2 unserialize_callback_func 例子

    <?php
    $serialized_object
    ='O:1:"a":1:{s:5:"value";s:3:"100";}';

    // unserialize_callback_func 从 PHP 4.2.0 起可用
    ini_set('unserialize_callback_func''mycallback'); // 设置您的回调函数

    function mycallback($classname
    {
       
    // 只需包含含有类定义的文件
       // $classname 指出需要的是哪一个类
    }
    ?>

     

    注释

    Warning

    如果反序列化了 FALSE 的值,或者在过程中发生了错误,都会返回 FALSE。 可以通过 strserialize(false) 进行比较,或者捕捉 E_NOTICE 错误来判断这种特殊情况。

    31.void unset ( mixed $var [, mixed $... ] )释放给定的变量

    unset() 销毁指定的变量。

    unset() 在函数中的行为会依赖于想要销毁的变量的类型而有所不同。

    如果在函数中 unset() 一个全局变量,则只是局部变量被销毁,而在调用环境中的变量将保持调用 unset() 之前一样的值。

     

    <?php
    function destroy_foo() {
        global 
    $foo;
        unset(
    $foo);
    }

    $foo 'bar';
    destroy_foo();
    echo 
    $foo;
    ?>

     

    以上例程会输出:

     

    bar
    

     

    如果您想在函数中 unset() 一个全局变量,可使用 $GLOBALS 数组来实现:

     

    <?php
    function foo() 
    {
        unset(
    $GLOBALS['bar']);
    }

    $bar "something";
    foo();
    ?>

     

    如果在函数中 unset() 一个通过引用传递的变量,则只是局部变量被销毁,而在调用环境中的变量将保持调用 unset() 之前一样的值。

     

    <?php
    function foo(&$bar) {
        unset(
    $bar);
        
    $bar "blah";
    }

    $bar 'something';
    echo 
    "$bar ";

    foo($bar);
    echo 
    "$bar ";
    ?>

     

    以上例程会输出:

     

    something
    something
    

     

    如果在函数中 unset() 一个静态变量,那么在函数内部此静态变量将被销毁。但是,当再次调用此函数时,此静态变量将被复原为上次被销毁之前的值。

     

    <?php
    function foo()
    {
        static 
    $bar;
        
    $bar++;
        echo 
    "Before unset: $bar, ";
        unset(
    $bar);
        
    $bar 23;
        echo 
    "after unset: $bar ";
    }

    foo();
    foo();
    foo();
    ?>

     

    以上例程会输出:

     

    Before unset: 1, after unset: 23
    Before unset: 2, after unset: 23
    Before unset: 3, after unset: 23
    

     

    参数

    var

    要销毁的变量。

    ...

    其他变量……

     

    返回值

    没有返回值。

    32.void var_dump ( mixed $expression [, mixed $... ] )打印变量的相关信息

     

    此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。

    33.mixed var_export ( mixed $expression [, bool $return ] )输出或返回一个变量的字符串表示

     

    此函数返回关于传递给该函数的变量的结构信息,它和 var_dump() 类似,不同的是其返回的表示是合法的 PHP 代码。

     

    您可以通过将函数的第二个参数设置为 TRUE,从而返回变量的表示。

     

    比较 var_export()var_dump().

     

    <pre>
    <?php
    $a 
    = array (12, array ("a""b""c"));
    var_export ($a);

    /* 输出:
    array (
      0 => 1,
      1 => 2,
      2 => 
      array (
        0 => 'a',
        1 => 'b',
        2 => 'c',
      ),
    )
    */

    $b 3.1;
    $v var_export($bTRUE);
    echo 
    $v;

    /* 输出:
    3.1
    */
    ?>
    </pre>

    34. 多字节字符串函数mb_detect_encoding检测字符的编码

          说明:string mb_detect_encoding ( string $str [, mixed $encoding_list = mb_detect_order() [, bool $strict = false ]] ):检测字符串str的编码

          参数:str待检查的字符串

                 encoding_list是一个字符编码列表,编码顺序可以由数组或者逗号分隔的列表字符串指定,如果省略了encoding_list 将会使用detect_order

                 strict 指定了是否严格地检测编码.默认是false

          返回值:检测到的字符编码,或者无法检测指定字符串的编码时返回 FALSE

  • 相关阅读:
    使用正向proxy 连调部署在k8s 中的spring cloud 中的rest服务
    goflow golang 的基于flow的编程库
    gvm golang 的多版本工具
    jvm-profiler 学习试用
    httpdiff http 请求diff 工具
    tengine lua 模块docker 镜像集成
    tengine 支持dubbo 的docker镜像
    openresty ngx.location.capture http2 问题
    systemd 使用rc.local 说明
    revel golang的全栈开发框架
  • 原文地址:https://www.cnblogs.com/systemEsc/p/3542589.html
Copyright © 2020-2023  润新知