== O:3:"Car":1:{s:4:"name";s:7:"new car";} object(Car)#3 (1) { ["name"]=> string(7) "new car" }请问为什么是这样的输出结果 啊,我看不懂

来源:2-10 PHP类和对象之对象的高级特性

qq_伊藤_03776080

2017-05-03 09:38

<?php

class Car {

    public $name = 'car';

    

    public function __clone() {

        $obj = new Car();

        $obj->name = $this->name;

    }

}

$a = new Car();

$a->name = 'new car';

$b = clone $a;

if ($a == $b)  echo '=='.'<br>';   //true

if ($a === $b) echo '==='.'<br>'; //false


$str = serialize($a); //对象序列化成字符串

echo $str.'<br>';

$c = unserialize($str); //反序列化为对象

var_dump($c);


写回答 关注

2回答

  • 摩天轮下的肖邦曲
    2017-05-03 09:44:30
    已采纳

    这是序列化的 结果 : O 表示的是对象 s表示字符串 4是字符串的长度 name 就是字符串 后面的s也是字符串 7 是 字符串的值  new Car 也就是  说 name 的值 是 new Car 

    潇洒走一会啊 回复qq_伊藤_...

    这个问题很简单,所有代码只有两个输出语句 一个是echo $str.'<br>'; 另一个是r_dump($c);你自己可以删除一个看看结果少了哪个

    2017-05-23 17:07:48

    共 3 条回复 >

  • 自己做自己的天使120810
    2017-11-08 13:33:16

    请问“Car”后面的1是什么意思,以及#号代表什么

PHP进阶篇

轻松学习PHP中级课程,进行全面了解,用PHP快速开发网站程序

181835 学习 · 2577 问题

查看课程

相似问题