为了账号安全,请及时绑定邮箱和手机立即绑定

面向对象 (四)类对象赋值为引用传递

标签:
PHP
值传递
    变量的拷贝,变量指向不同地址,一个变量的更改  不会  影响另一个变量

引用传递
    指向同一个地址,一个变量的更改  会  影响另一变量

对象赋值, 为引用传递
实践
demo5.php
<?php
/**
* Desc: 值传递与引用传递
* User: zyy
* Date: 2019-12-08
* Time: 下午 21:20
*/
namespace Article {
    class Comment1
    {
        public $title;
        public $content;
        public function __construct($title, $content)
        {
            $this->title = $title;
            $this->content = $content;
        }

        public function getTitle($title)
        {

            $title = 123;
            return $title;
        }

        public function getTitleBy(&$title)
        {
            $title = 456;
            return $title;
        }
    }
    $obj = new Comment1('title', 'content');

    $obj->getTitle($obj->title); //值传递,不会影响$obj对象的$title属性

    echo $obj->title;echo "<br/>";

    echo "<pre>";var_dump($obj);echo "</pre>";echo "<br/>";

    $obj->getTitleBy($obj->title);//引用传递,会影响$obj对象的$title属性

    echo $obj->title;echo "<br/>";

    echo "<pre>";var_dump($obj);echo "</pre>";echo "<br/>";

    $obj2 = $obj;  //对象赋值,默认为引用传递,变量$obj2的修改 会 影响另一个变量$obj

    $obj2->title = 'obj2 改变 title';

    echo "<pre>";var_dump($obj);echo "</pre>";echo "<br/>";
}
点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消