php - 如何在 PHP 中从另一个文件访问类属性
问题描述
我想从我的另一个文件中访问类属性,但我不知道如何。
我正在创建一个类,其目标是使用参数(表名、ID 和表字段)中传递的数据生成一个 CRUD 表。
我已经在文件中创建了类main.php
,但我也使用了一个名为的外部文件res.php
,该文件将负责调用数据库并构建表。
一旦类完成并准备好使用,它的功能将在我所有项目的任何文件中。如果我实例化该类的对象,将使用以下内容创建一个 CRUD 表:
$test = new GenerateCrud('users_test', 'id', ['usuario', 'apellido1', 'apellido2', 'email']);
$test->showTable();
我的问题:要创建表,我必须访问类的属性,因为我需要打印表名、字段等。
我怎么了?我不知道该怎么做。
我的班级文件main.php
:
<?php
class GenerateCrud {
// Properties.
public $tableName;
public $id;
public $tableFields = array();
// Constructor.
function __construct($tableName, $id, $tableFields){
$this->tableName = $tableName;
$this->id = $id;
$this->tableFields = $tableFields;
}
}
?>
我的外部文件res.php
:
<?php
include_once('main.php');
?>
<div class="container caja">
<div class="row">
<div class="col-lg-12 col-sm-12">
<div>
<table id="tablaUsuarios" class="table table-striped table-bordered table-condensed" style="width:100%" >
<thead class="text-center">
<tr>
<!-- CREATE FOR EACH TO SHOW THE TABLE FIELDS -->
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
</div>
</div>
<script>
$(document).ready(function() {
var tableName = "<?php echo $this->tableName; ?>"; // HEREEEEEEEEEEEEEEEEEEE
console.log(tableName);
});
</script>
<?php
}
?>
我知道变量 $this 没有指向任何东西,因为我没有实例化一个对象,但是,它是否像实例化一个对象一样简单,就是这样?我不会得到错误更改或类似的信息吗?当我再次实例化对象时,它不会给我带来问题吗?
我知道我没有很好地描述这个问题,而且我知道我缺乏知识,这很明显,这就是我在这里要求尝试学习的原因。
如果有人可以向我解释他们解释的原因以理解这一点,我将非常感激。
谢谢你,祝你有美好的一天。
解决方案
为了访问属性tableName
,您必须首先初始化 GenerateCrud 对象。我也main.php
看res.php
不到对象初始化。
你说要生成你使用的 CRUD 表
$test = new GenerateCrud('users_test', 'id', ['usuario', 'apellido1', 'apellido2', 'email']);
$test->showTable();
但它是在你的代码中添加的?是在里面main.php
还是res.php
我会建议你将这段代码添加到main.php
文件的顶部,然后你将能够获得tableName
财产
像这样的东西
<?php
include_once('main.php');
$test = new GenerateCrud('users_test', 'id', ['usuario', 'apellido1', 'apellido2', 'email']);
?>
<div class="container caja">
<div class="row">
<div class="col-lg-12 col-sm-12">
<div>
<table id="tablaUsuarios" class="table table-striped table-bordered table-condensed" style="width:100%" >
<thead class="text-center">
<tr>
<!-- CREATE FOR EACH TO SHOW THE TABLE FIELDS -->
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
</div>
</div>
<script>
$(document).ready(function() {
var tableName = "<?= $test->tableName; ?>"; // HEREEEEEEEEEEEEEEEEEEE
console.log(tableName);
});
</script>
推荐阅读
- ios - Apple 工资单未显示给 Apple 应用审查员
- reactjs - 关键帧在嵌套 SVG 中不起作用,但在单个 SVG 中起作用
- c - CS50 有效三角形 - 错误的代码输出
- julia - 获取 Julia 方法的关键字名称
- ios - EKCalendarChooser 委托不在 NSObject 中工作
- python - 是否可以在 numpy 版本 1.7.1 中使用 numpy 特征向量计算出现分段错误
- python - 如何将单列 QVBoxLayout 修改为多列?
- c++ - 在 C++ 代码中使用 parfor 关键字并行化 for 循环
- c# - C# REST API - 如何使用错误代码扩展模型状态错误
- javascript - 在 PDF 中嵌入 JavaScript/操作向导