如何动态创建新属性

2024-05-13

如何从对象方法内的给定参数创建属性?

class Foo{

  public function createProperty($var_name, $val){
    // here how can I create a property named "$var_name"
    // that takes $val as value?

  }

}

我希望能够访问该属性,例如:

$object = new Foo();
$object->createProperty('hello', 'Hiiiiiiiiiiiiiiii');

echo $object->hello;

我是否可以将财产设为公共/受保护/私有?我知道在这种情况下它应该是公开的,但我可能想添加一些magik方法来获取受保护的属性和东西:)


I think I found a solution:
  protected $user_properties = array();

  public function createProperty($var_name, $val){
    $this->user_properties[$var_name] = $val;

  }

  public function __get($name){
    if(isset($this->user_properties[$name])
      return $this->user_properties[$name];

  }

你认为这是个好主意吗?


有两种方法可以做到这一点。

一,您可以直接从类外部动态创建属性:

class Foo{

}

$foo = new Foo();
$foo->hello = 'Something';

或者,如果您希望通过您的createProperty method:

class Foo{
    public function createProperty($name, $value){
        $this->{$name} = $value;
    }
}

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

如何动态创建新属性 的相关文章

  • 将 rel="nofollow" 添加到 WordPress 帖子中的所有链接

    我想将 rel nofollow 添加到我的 WordPress 帖子中的所有链接 并且我希望能够拥有一个不会获得 nofollow 的链接列表 我已经尝试了很多 但我无法正确完成 因为我真的不能很好地理解正则表达式 所以我有字符串 tex
  • 将 #RRGGBB 十六进制值转换为 #AARRGGBB

    414141 与 AARRGGBB 的值是什么 52b531 又如何 我如何使用 PHP 转换它 Regards 奔腾10 AA 是 Alpha 通道 直接转换是将 AA 设置为 FF 以使其完全不透明 414141 becomes FF4
  • 在多维数组 PHP 的所有键中搜索

    我想在多维数组中的所有键中搜索特定字符串 我只需要弄清楚它是否存在 仅此而已 我想知道访问者的 IP 是否存在于任何数组中 有没有我可以用来执行此操作的 php 函数或方法 我尝试过的每个函数或方法总是返回 false 数组中 数组搜索 数
  • Magento:如何在 CMS 页面中包含 php 调用

    按照此页面的说明进行操作 http www magento cc how to use php on a cms page html http www magento cc how to use php on a cms page html
  • 是否可以在 UML 中可视化一堆函数

    我正在改进一个使用类和函数文件 只是包含各种函数的 php 文件 的内容管理系统 例如 我有一堂课叫Admin以及一个功能文件 其功能包括显示管理员概述 创建新管理员 编辑现有管理员 删除管理员 函数文件使用类并执行 mvc 概念的可视化部
  • Codeigniter PHP - 在锚点加载视图

    我在一个长页面的底部有一个表单 如果用户填写了表单但它不验证页面是否以典型的 codeigniter 方式重新加载 this gt load gt view template data 然而 由于表单位于页面底部 我需要将页面加载到那里 就
  • 在 CodeIgniter 中添加新页面

    对于我对 CodeIgniter 和 MVC 系统的无知 我提前表示歉意 我正在帮助一位家庭成员处理他们的商业网站 到目前为止 我已经能够仅通过逻辑来完成大部分所需的更改 但现在我已经走进了死胡同 我不打算继续支持他们 因为我显然不是 Co
  • PHP 电子邮件验证[重复]

    这个问题在这里已经有答案了 For PHP最好的电子邮件验证方法是什么preg NOT ereg因为它是已弃用 删除 I don t需要检查该网站是否存在 这不像最高安全性 我找到了很多方法ereg但它们 显然 不是好的做法 我建议你使用F
  • 使用什么来移动 UIView self.frame 或 self.transform 属性?

    这个问题我有点困惑 我知道我可以改变观点self frame origin 但我发现有一个名为 变换 的属性 我认为这是用于在屏幕上移动我的视图等 也许我有点不明白 所以我想知道 我必须使用哪个房产来搬家UIView 或者它的子类 另一个类
  • 优雅地退出 Laravel 作用域

    我有一个范围 它根据用户角色以限制方式起作用 您可以将一组规则转发到限制数据库最终输出的范围 一个非常简化的角色限制示例 first name foo 只会返回其记录first name开始于foo 这实际上意味着我已禁止具有该角色的用户查
  • 错误 #520009 - 帐户受到限制

    我收到 520009 错误 帐户 电子邮件受保护 cdn cgi l email protection被限制 当尝试进行并行付款时 我的代码使用沙箱运行良好 但我切换到实时端点 它开始失败 有问题的帐户是有效的 PayPal 帐户 我使用的
  • 在 PHP 中将整数转换为十六进制值

    如何将PHP中第一类中的数字转换为第二类中的数字 是否有内置函数来转换数字 也是我的标题 将整数转换为十六进制值 甚至正确 class Permission const READ 1 const UPDATE 2 const DELETE
  • 为什么 asort 适用于多维数组?

    抱歉 如果这是一个非常基本的问题 我无意中发现asort http php net manual en function asort php似乎适用于多维数组 示例 PHP animals array 1 gt array name gt
  • ASP.NET MVC 3 中嵌入的 PHP 站点的 IgnoreRoute

    我有一个带有嵌入式 WordPress 博客的 MVC 3 网站 以下所有 url 均通过 MVC 定向 www mysite com www mysite com aboutus www mysite com contactus 我还有一
  • Lumen:无法打开流:.../vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:107 中的权限被拒绝

    My OS is ubuntu 16 04 and I am running Lumen 5 5 When I try to run the app in the browser I get an error 500 我在 var log
  • 自定义 WordPress 画廊 html 布局

    当使用默认媒体上传器在 WordPress 中创建图像库时 WordPress 将图像包装在一堆 HTML 标记中 如何在生成之前覆盖它 以便我可以输出所需的标记并更改创建图库布局的方式 目前 WordPress 生成的代码如下 div d
  • 创建单个随机 Magento 优惠券

    我遇到了一些麻烦 我想要做的是每次有人订阅我们的时事通讯时 在 Magento 中自动生成一个随机优惠券代码 这张优惠券可减 10 美元 并且有exp 订阅后两周的日期 因此 我正在尝试编写一个简单的脚本 当提交 订阅我们的时事通讯 表单时
  • PHP Json_encode 将空格更改为加号 +

    我有一个网络应用程序 我首先将 JSON 数据存储在 cookie 中 然后每 x 秒保存到数据库 它只是打开与服务器的连接 服务器读取 cookie 它实际上并不通过 POST 或 GET 发送任何内容 当我保存到 cookie 时 我的
  • Mysql加密/存储敏感数据,

    我的 PHP 网站有以下内容 启用 SSL 饼干 session set cookie params cookieParams lifetime cookieParams path cookieParams domain secure ht
  • 如何统计订单总价?

    我有这些表 Orders id status user id address id 1 await 1 1 products id name price quantity 1 test1 100 5 2 test2 50 5 order p

随机推荐

  • 使用 dnx/.net core 更改输出程序集和包的名称

    我有一个项目存在于名为Oracle我希望创建的工件被称为MyCompany MyApp Oracle代替Oracle 除了更改目录名称之外 我可以选择哪些选项来更改输出程序集名称和 nuget 包名称 我目前有一个MyCompany MyA
  • 将数据从 MS SQL 导入 MySQL

    我想从 MS SQL Server 导入数据 通过某种正则表达式运行它以过滤掉内容 然后将其导入 MySQL 然后 对于每个查询 我希望显示来自第三个数据库的相关图像 明智地导入和链接 最简单的方法是什么 谢谢 澄清 它是一个 PHP 应用
  • lambda 表达式的 noexcept 和empty throw 规范之间有什么区别吗?

    举个例子 double values 2 5 3 5 4 5 5 5 6 5 7 5 std vector
  • 当 flutter 应用程序终止时,普通推送通知会默默出现或根本不出现

    我在 nodejs 上使用 firebase admin 向用户发送推送通知 https firebase google com docs admin setup https firebase google com docs admin s
  • 向 jQuery .toggle() 方法添加 WAI-ARIA 支持

    我想配对怀阿利亚aria hidden http www w3 org TR wai aria states and properties aria hidden支持 jQuery 的 toggle 方法 所以给出 p Hi there p
  • mPDF 临时文件不可使用 Yii 写入

    我尝试打印 PDF 格式的证书 但是当我将代码推送到暂存阶段时 它说 Temporary files directory var www protected vendor mpdf mpdf src Config tmp is not wr
  • 风暴最大喷口待定

    这是一个关于 Storm 的最大喷口待处理如何工作的问题 我目前有一个 spout 它读取文件并为文件中的每一行发出一个元组 我知道 Storm 不是处理文件的最佳解决方案 但我对此问题没有选择 我设置了topology max spout
  • 监控进程的网络使用情况?

    C 或 C C Win32 中有没有一种方法可以监视某个进程的网络使用情况 显然没有您构建的应用程序 我想只监视 1 个进程大约一个小时左右 然后返回仅该进程 例如 Limewire 使用的字节 是否可以 我知道 Windows 上的 ne
  • NGINX 上的 SSL 终止

    我已经购买了 SSL 证书 并在验证模数时正确地将其捆绑在一起 即https kb wisc edu middleware 4064 https kb wisc edu middleware 4064 那么哈希值是相同的 我已将证书和密钥移
  • Git - 推送到远程存储库中的远程跟踪分支

    当简单地做git push到远程存储库 其master分支得到更新 对于非裸存储库来说 这是不希望出现的情况 最近的 Git 版本显示的警告消息清楚地表明了这一点 我希望能够推送到远程存储库 并拥有其之一远程追踪分支进行更新 稍后 当我登录
  • 每次我尝试将任何内容上传到 android 模拟器时都会出现 IOException

    我使用的是 Windows 7 Ultimate 64 位版本和带有 Android 插件的 Eclipse 3 5 每次我创建一个新项目并尝试发布它时 都会收到如下错误 2010 02 15 22 48 10 EPG3 Uploading
  • Flask 未激活调试模式

    我正在开始使用 Flask 我正在尝试遵循一些教程 但我无法在调试模式下运行 Flask 应用程序 我尝试了我发现的最简单的代码 from flask import Flask app Flask name app debug True I
  • 如何使用 Laravel Mix 和 WorkBox?

    我正在尝试为我的应用程序构建一个 PWA 并花了近 48 小时试图弄清楚如何将 Workbox 与 Laravel Mix 结合使用 具有讽刺意味的是 谷歌说 Workbox 是为了让事情变得简单 Buh 好吧 到目前为止我已经弄清楚了 我
  • 无法在项目上执行目标 org.apache.maven.plugins:maven-surefire-plugin:2.12:test (default-test)。

    几天来我一直在尝试解决以下错误 但无法解决 我的模块的 pom xml 文件是
  • Apache:重定向用户,但保持相同的路径?

    我希望能够将用户重定向到不同的 TLD 但保持相同的路径 例如 如果用户访问 example com cars 10 使用 apache 如何将用户重定向到类似以下内容 my new site com cars 10 如果您的服务器启用了
  • Java 类查找工具

    任何经常使用 Java 的人都知道类路径中的多个 jar 会给我们带来多少麻烦 我正在寻找一个可以帮助我的工具 在 jar 中搜索类文件类路径 在 jar 中搜索类文件具体位置 也许要求太多 但请告诉我同一个类是否存在于多个罐子中 不用说它
  • c中的数组名到底是什么?

    我很难理解 C 中数组名称的类型和使用 这可能看起来很长 但请耐心等待 我理解以下声明声明a属于类型int i e 整数数组 int a 30 While a还指向数组的第一个元素以及诸如此类的东西 a 2 是有效的 因此 使得a看起来像一
  • 为什么即使没有要打印的数据,打印命令也会换行

    只是打字print在 python 中只给出换行符 打字print3 x 中没有括号也会给出换行符 为什么 Because 文档 https docs python org 3 library functions html print sa
  • 如果字符串不匹配,.split() 返回什么?

    在此 JavaScript 代码中 如果变量data没有那个角色 那么 split 会返回什么呢 x data split 它会是原始字符串的数组吗 是的 根据ECMA262 15 5 4 14 String prototype split
  • 如何动态创建新属性

    如何从对象方法内的给定参数创建属性 class Foo public function createProperty var name val here how can I create a property named var name