gpt4 book ai didi

php - 与以下代码有点混淆

转载 作者:搜寻专家 更新时间:2023-10-31 21:36:08 25 4
gpt4 key购买 nike

我正在尝试学习用于 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();
}
}
?>

有人可以不仅解释这里花括号的使用,还解释如何为定义的常量分配新值吗?

最佳答案

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

这一行:

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

归结为

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

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

关于php - 与以下代码有点混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19126510/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com