在其他方法中使用 __construct() 中的变量

2024-04-05

我定义了一个新变量__construct()我想在另一个地方使用它function这个的class。 但我的变量在另一个函数中是空的!

这是我的代码:

class testObject{
     function __construct() {
           global $c;
           $data = array("name"=>$c['name'],
                         "family"=>$c['family']);
     }

     function showInfo() {
           global $data;
           print_r($data);
     }

}

声明变量$data作为构造函数内的全局:

 function __construct() {
       global $c;
       global $data;
       $data = array("name"=>$c['name'],
                     "family"=>$c['family']);
 }

然后,它在其他功能中也将可见。

注意强烈建议不要广泛使用全局变量,考虑重新设计您的类以将类变量与 getter+setter 一起使用。

更合适的方法是使用

class testObject
{
     private $data;

     function __construct(array $c) 
     {
         $this->data = array(
             "name"=>$c['name'],
             "family"=>$c['family']
         );
     }

     function showInfo() 
     {
         print_r($this->data);
     }

     // getter: if you need to access data from outside this class
     function getData() 
     {
         return $this->data;
     }
}

另外,请考虑将数据字段分离到单独的类变量中,如下所示。然后你就有了一个典型的、干净的数据类。

class testObject
{
     private $name;
     private $family;

     function __construct($name, $family) 
     {
         $this->name = $name;
         $this->family = $family;
     }

     function showInfo() 
     {
         print("name: " . $this->name . ", family: " . $this->family);
     }

     // getters
     function getName() 
     {
         return $this->name;
     }

     function getFamily() 
     {
         return $this->family;
     }

}

您甚至可以使用全局变量中的数据构造此对象$c直到您从代码中删除它:

new testObject($c['name'], $c['family'])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在其他方法中使用 __construct() 中的变量 的相关文章

  • PHP 用星号替换所有字符

    假设我有一个字符串形式的密码 password thisisaplaintextpassword 我怎样才能把它变成下面的样子 password 我想通过电子邮件向用户发送他们的帐户详细信息 但不想发送整个内容 Use 字符串重复 http
  • MYSQL 的 Google OAuth 2.0 用户 ID 数据类型

    我正在实施 Google OAuth 2 0 并注意到 Google OAuth 返回的唯一用户 ID 是21位数字长的 我想大整数 20 足以满足这种需求 但我现在看到 Google OAuth 返回的用户 ID 的长度感到困惑 关于我应
  • 压缩 zend Framework 2 的 html 输出

    我目前正在 PHP 5 4 4 上使用 Zend Framework 2 beta 开发个人 web 应用程序以用于自学目的 我想知道是否可以在 html 输出发送到浏览器之前拦截它 以便通过删除所有不必要的空格来缩小它 我怎样才能在ZF2
  • Laravel 5.1 中的VerifyCsrfToken.php 第 53 行:(Firefox 浏览器)中出现 TokenMismatchException?

    我试图找出为什么会出现这个错误 即使它是全新安装的 我在我的项目中遇到了这个错误 所以我用谷歌搜索 没有一个答案对我有用 所以我创建了新项目并复制了所有控制器 视图和模型 几个小时后工作正常 再次出现令牌不匹配错误 为什么在 laravel
  • Laravel - 停止并发访问记录

    在 Laravel 中 有什么方法可以停止同时与同一条记录交互 例如 如果用户 A 正在编辑一条记录 那么我同时需要阻止用户 B 编辑同一条记录 注意 我在 Laravel 5 2 中使用 SESSION DRIVER file 目前大约有
  • PHP解析xml文件错误

    我正在尝试使用 simpleXML 来获取数据http rates fxcm com RatesXML http rates fxcm com RatesXML Using simplexml load file 我有时会遇到错误 因为这个
  • cURL 错误 77:设置证书验证位置时出错:CAfile

    我正在使用 Firebase php SDKlink https firebase php readthedocs io en latest index html并在 Windows 10 上的 XAMPP 服务器上使用 laravel 最
  • 如何在 Zend Framework 中存储 cron 作业的脚本?

    因为 ZF 的所有 URL 都依赖于 mod 重写 所以我并不清楚应该在哪里存储用于 cron 作业的本地脚本 有人有什么建议 或者有 正式接受 的方式吗 我用模块化目录结构 http framework zend com manual e
  • 具有动态表单名称的 form_widget

    在我的 Twig 模板中 我有一个 FOR 循环 它创建多个表单 如下所示 for thing in things set form id myform thing Id set form name attribute form myfor
  • 运行 Composer 返回:“无法打开输入文件:composer.phar”

    我是 symfony2 和阅读新手symblog http tutorial symblog co uk tutorial parts 在第三章中 在尝试使用数据装置时 我尝试了以下命令 php composer phar update 但
  • php - 我应该加密电子邮件地址吗?

    当用户注册时 我应该将他们的电子邮件按原样存储在数据库中还是对其进行哈希处理 我希望稍后能够解密 那么我应该使用 md5 吗 谢谢你 No md5 is 单向哈希函数 http en wikipedia org wiki Cryptogra
  • php 中的简单授权/登录功能

    我希望第一次实现用户登录到我的网站 我很高兴构建自己的解决方案 或者实现一些开源的东西 但是到目前为止 在我的搜索中没有任何包是明显的选择 同样 我完全意识到 作为一名中级 php 程序员 如果我推出自己的解决方案 并真正敞开大门 我很可能
  • Laravel 广播:通知与事件

    我阅读了 laravel 文档Events and Notifications 似乎我们可以触发一个事件 并从该事件中触发 使用ShouldBroadcast接口 将其广播到我理解的 laravel echo 另一方面我们可以使用通知via
  • Laravel 按动态 ID 数组对集合进行排序 [重复]

    这个问题在这里已经有答案了 我有以下 people array 5 2 9 6 11 people collection People find people 但当我倾倒并死去时 people collection集合按 ID ASC 排序
  • CakePHP Xml 实用程序库触发 DOMDocument 警告

    我正在使用 CakePHP 在视图中生成 XMLXML核心库 http book cakephp org 2 0 en core utility libraries xml html xml Xml build data array ret
  • Android GCM 服务器的 API 密钥

    我有点困惑我应该为 GCM 服务器使用哪个 API 密钥 在文档中它说使用 android api 密钥 这对我不起作用并且总是给出未经授权的 http developer android com google gcm gs html ht
  • 如何从字符串中删除所有数字?

    我想删除字符串 0 9 中的所有数字 我写了这段有效的代码 words preg replace 0 words remove numbers words preg replace 1 words remove numbers words
  • 如何在 codeigniter 查询中使用 FIND_IN_SET?

    array array classesID gt 6 this gt db gt select gt from this gt table name gt where array gt order by this gt order by q
  • PHP cURL 在本地工作,在 AWS 服务器上出现错误 77

    最新更新 脚本作为管理员用户通过 SSH shell 作为 php script php 成功运行 当由 nginx 用户运行时 curl 命令无法执行 https 请求 所以我猜测这是nginx用户无法正确使用curl的问题 我已经检查了
  • 使用Multiprocessing和Pool时如何访问全局变量?

    我试图避免将变量冗余地传递到dataList e g 1 globalDict 2 globalDict 3 globalDict 并在全球范围内使用它们 global globalDict然而 在下面的代码中并不是这样做的解决方案 是否有

随机推荐

  • 推荐的在线片段管理器[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个在线片段管理器 用于工作 个人使用和灵感 我的主要需求是谷歌 脸书登录 各种编程语言的字体
  • CKFetchRecordsOperation + CKQueryOperations ...我错过了什么?

    经过大量搜索示例代码后 设法拼凑出 CKFetchRecordsOperation 就在这里 但我一定错过了什么 别误会我的意思 它确实是一种享受 但是 要执行 CKFetchRecordsOperation 您需要一个 CKRecordI
  • 如何获取类中函数的返回类型?

    例如 class A int foo return 1 void goo decltype A nullptr gt foo i The decltype A nullptr gt foo 在这里不起作用 因为 A 是不完整的类 怎么做 关
  • bluez 同时具有经典和低能耗设备

    Linux下的bluez是否可以同时连接多个经典和低能耗设备 bluez 网站提供这样的信息不是很有帮助 是的 我已经成功同时连接到 7 个低能耗设备 最大值因您使用的硬件而异 您还可以连接到多个经典设备 以下是我用于通过 L2CAP 连接
  • 在 django 中扩展表单?

    我最近尝试使用以下内容扩展 django 的注册表单 但我只能看到默认的四个字段 我有什么遗漏的吗 或者 如果我要创建自定义表单 我应该创建自己的注册后端吗 class RegistrationForm forms Form usernam
  • 将 javascript 日期解析为 golang 日期

    我需要解析通过调用获得的 JavaScript 格式的日期new Date 看起来像Sat Aug 27 2016 17 07 43 GMT 1000 AEST 然后我将其作为字符串发布到我的 golang 服务器 我需要解析它以使其格式与
  • 将 PIL 图像转换为字节数组?

    我有一个 PIL 图像格式的图像 我需要将其转换为字节数组 img Image open fh mode r roiImg img crop box 现在我需要roiImg作为字节数组 感谢大家的帮助 终于解决了 import io fro
  • 无法建立新连接:[Errno 111] 连接被拒绝

    我正在尝试从路透社获取数据并获取如下代码 但我认为由于不断的请求 我无法抓取更多数据 有办法解决这个问题吗 我正在使用谷歌Colab 虽然类似的问题还有很多 但都没有答案 如果我能得到一些帮助 我将非常感激 谢谢 pip install s
  • 递归更改 JSON 键名称(全部大写)?

    有没有办法将所有 JSON 键名称更改为大写字母 eg name john Age 21 sex male place state ca 并需要转换为 NAME john AGE 21 SEX male PLACE STATE ca 从你的
  • 确定哪些行导致查询错误

    我有一个包含 15 000 行的 Oracle 18c 表 作为测试 我尝试对其运行以下查询 select works for all rows sdo util to wkbgeometry sdo geometry replace sd
  • postgres 外键是否意味着索引?

    我有一个 postgres 表 我们称这个表为Events 与另一个表的复合外键 让我们调用这个表Logs 事件表如下所示 CREATE TABLE Events ColPrimary UUID ColA VARCHAR 50 ColB V
  • 生成详细输出的良好做法是什么?

    生成详细输出的良好做法是什么 目前 我有一个功能 bool verbose int setVerbose bool v errormsg verbose v if verbose v return 0 else return 1 每当我想生
  • 灵活地移动现有领域/行为[重复]

    这个问题在这里已经有答案了 如何将现有字段 IDublinCore rights 移动到特定字段之后的另一个字段集中 无需编写我自己的行为 IDublinCore 的副本 Rights 字段应出现在 image caption 自己的内容类
  • 如何向 QFileSystemModel 添加自定义角色

    我想向 QFileSystemModel 添加自定义角色 可能是派生模型 我想使用此角色来保存复选框的选中状态 该状态显示在自定义委托中的文件名旁边 如何才能做到这一点 我已经使用过使用示例Qt Quick Controls 文件系统浏览器
  • 将 onPostExecute 应用于 onClickListener

    我已经制作了可以使用的程序AsyncTask它在程序执行时打印 JSON 数据列表 但问题是我希望它在按下按钮时执行 我如何得到结果AsyncTask进入我的onClickButtonListener 如何从 onClick 调用 Asyn
  • 如何使用并行插入语句在 MySQL 表中插入巨大的 Pandas Dataframe?

    我正在开发一个项目 其中我必须编写一个包含数百万行和大约 25 列 大部分为数字类型 的数据框 我在用Pandas DataFrame 到 SQL 函数 https pandas pydata org pandas docs version
  • 如何在 Excel 工作表中插入锁定符号

    这个问题在这里已经有答案了 我知道锁符号 的unicode是128275 When I copy this symbol from the browser and paste into excel it appears like this
  • Android API 21 创建自定义主密钥

    我正在尝试创建一个加密的SharedPreferences实施 但给出的例子安卓网站 https developer android com topic security data适用于 API 23 及以上版本 具体来说 问题是使用此代码
  • 什么是双因素身份验证?

    我的任务是寻找和评估一些用于我们的产品之一的身份验证库 某些解决方案推动的销售功能之一是 双因素身份验证 这个方法是什么 它是如何工作的 是否有更好的方法 我猜是三因素身份验证 双因素身份验证是使用两个因素来验证一个人 或有时是一个进程 这
  • 在其他方法中使用 __construct() 中的变量

    我定义了一个新变量 construct 我想在另一个地方使用它function这个的class 但我的变量在另一个函数中是空的 这是我的代码 class testObject function construct global c data