首页 > 其他分享 >var_dump()的用法

var_dump()的用法

时间:2022-11-29 18:35:10浏览次数:26  
标签:dump serialize 用法 time var array true


var_dump()

void var_dump ( mixed expression [, mixed expression [, ...]] )


var_dump()方法是判断一个变量的类型与长度,并输出变量的数值,如果变量有值输的是变量的值并回返数据类型.
此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。


例1

 代码如下

复制代码

$a = "alsdflasdf;a";
$b = var_dump($a);
echo "
";
//var_dump($c);
$d=var_dump($c);
echo "
";
echo $a;
echo "
";
echo $b;
echo "
";
输出:
string(12) "alsdflasdf;a"
NULL
alsdflasdf;a

例2

1. var_dump() 示例

 代码如下

复制代码

$a = array (1, 2, array ("a", "b", "c"));var_dump ($a);


/* 输出: array(3) { [0]=> int(1) [1]=> int(2) [2]=> array(3) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> string(1) "c" } }
*/
$b = 3.1; $c = TRUE; var_dump($b,$c);
/* 输出: float(3.1) bool(true)
*/ ?>

  var_export和serialize做数组缓存

$str = serialize($arr); 这两种机制转换之后的字符串是不一样的,第一种是数组的原型模式,第二种是序列化后的形式。第一 种存入文件中的只要加上标签,就形式了一个可用的数组原型,对调用来说,不用转换,直接返回这个数组就可以,但第二种,则需要再用一次unserialize函数反序 列化一下。对于第种一说,就多了一步操作。下来我们用数据说话吧:

 代码如下

复制代码

set_time_limit(50); $a = array(1,2,3); $b = array('a'=>1, 'b'=>2, 'c'=>3); $c = array('a'=>array(1,2,3), 'b'=>array(4,5,6));
$time1 = microtime(true);
$times = 1000000; #10w
for($i=1; $i<=$times; $i++){ $A = var_export($a, true); }
$time2 = microtime(true);
for($i=1; $i<=$times; $i++){ $B = var_export($b, true); }
$time3 = microtime(true);
for($i=1; $i<=$times; $i++){ $C = var_export($c, true); }
$time4 = microtime(true);
for($i=1; $i<=$times; $i++){ $X = serialize($a); }
$time5 = microtime(true);
for($i=1; $i<=$times; $i++){ $Y = serialize($b); }
$time6 = microtime(true);
for($i=1; $i<=$times; $i++){ $Z = serialize($c); }
$time7 = microtime(true);
for($i=1; $i<=$times; $i++){ $O = unserialize($X); }
$time8 = microtime(true);
for($i=1; $i<=$times; $i++){ $P = unserialize($Y); }
$time9 = microtime(true);
for($i=1; $i<=$times; $i++){ $Q = unserialize($Z); } $time10 = microtime(true);
$var_export_time['a'] = $time2 - $time1; $var_export_time['b'] = $time3 - $time2; $var_export_time['c'] = $time4 - $time3;
$serialize_time['a'] = $time5 - $time4; $serialize_time['b'] = $time6 - $time5; $serialize_time['c'] = $time7 - $time6;
$unserialize_time['a'] = $time8 - $time7; $unserialize_time['b'] = $time9 - $time8; $unserialize_time['c'] = $time10 - $time9; print_r($var_export_time); print_r($serialize_time); print_r($unserialize_time); ?> output: Array( [a] => 3.3401498794556 [b] => 5.1394801139832 [c] => 8.8483898639679)Array( [a] => 1.6063709259033 [b] => 1.7033960819244 [c] => 3.4534389972687)Array( [a] => 1.6037359237671 [b] => 1.817803144455 [c] => 3.7992968559265)

由上面数据说明: var_export函数性能比serialize函数性能差一倍,而 unserialize时间也需要和serialize差不多的时间,serialize加上unserialize时间,和用var_export时间 差不多。

标签:dump,serialize,用法,time,var,array,true
From: https://blog.51cto.com/u_12853553/5896517

相关文章

  • Gson基本用法
    Gson解析json数据数组Gsongson=newGson();List<Person>people=gson.fromJson(jsonData,newTypeToken<List<Person>>(){}.getType());解析json数据Gsongson=new......
  • flutter使用getwidget的ui组件库的底部导航用法
    参考github上getwidget-app-kit import'package:flutter/material.dart';import'package:getwidget/getwidget.dart';import'package:flutter/cupertino.dart';......
  • 行业分析| 实时音视频的多种用法
    产品概述实时音视频英文全称RealTimeCommunication,简称RTC,是一种终端服务,开发者通过集成Android、iOS、Web、Windows、macOS、Linux等相应SDK即可实现低延迟的实时......
  • pytorch分布式训练 DDP torchrun用法
    master的端口默认是29500,如果被占用了就换一个torchrun--master_port61234--nproc_per_node$gpu_numtrain.py...shell脚本:exportCUDA_VISIBLE_DEVICES=$1gpu_n......
  • Fully Spiking Variational Autoencoder
    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布!  AAAI2022 Abstract脉冲神经网络(SNN)由于其二值和事件驱动的性质,可以在具有超高速和超低能耗的神经形......
  • Golang sync.WaitGroup的用法
    参考链接:https://studygolang.com/articles/12972funcmain(){wg:=sync.WaitGroup{}wg.Add(100)fori:=0;i<100;i++{gofunc(iint)......
  • memset用法
    功能:将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值,它是对较大结构体或数组清零的一种最快的方法。块的大小由第三个参数指定,这个函数通常......
  • AcApDataManager 类的用法
    AcApDataManager是一个模板类,它帮助开发人员按每个文档(而不是全局)存储数据。AcApDataManager对象是每个文档数据对象的容器。应用程序定义一个类来包含它的文档数据,然后......
  • memcpy函数用法2
    头文件#include<string.h>memcpy()用来复制内存,其原型为:    void*memcpy(void*dest,constvoid*src,size_tnum);memcpy()会复制src所指的内存内容......
  • Promise的简单用法
    什么是Promise?Promise是异步编程的一种解决方案,其实是一个构造函数,自己身上有all、reject、resolve这几个方法,原型上有then、catch等方法。Promise对象有以下两个特点。......