【问题标题】:A bit confused with the following code对以下代码有点困惑
【发布时间】:2013-10-01 21:44:30
【问题描述】:

我正在尝试为 php 学习 codeigniter,我遇到了这段代码,似乎讲师正在尝试更改常量变量。首先我不知道为什么要使用花括号,然后我很好奇这个常量变量到底发生了什么。

<?php
    class MY_Model extends CI_Model {
        const DB_TABLE = 'abstract';
        const DB_TABLE_PK = 'abstract';

        private function insert() {
            $this->db->insert($this::DB_TABLE, $this);
            $this->{$this::DB_TABLE_PK} = $this->db->insert_id();
        }
    }
?>

谁能解释一下这里大括号的用法,以及如何为定义的常量分配一个新值?

【问题讨论】:

标签: php codeigniter constants


【解决方案1】:

他们没有分配给常量。他们使用常量作为查找键,来创建对象的“动态”属性。

这一行:

$this->{$this::DB_TABLE_PK} = $this->db->insert_id();

归结为

$this->{'abstract'} = $this->db->insert_id();

这是一个完全可以接受的结构。它只是即时创建一个对象属性。

【讨论】:

  • 啊,我应该从我的基本 php 教育中记住这一点。谢谢大家:P
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-12
  • 1970-01-01
  • 1970-01-01
  • 2013-06-19
  • 2011-07-10
相关资源
最近更新 更多