$this->价值损失,好吧,它的价值

2024-04-07

我正在使用的 PHP 文件有问题,而且我似乎找不到解决方案。

在代码的一部分中,值$this->value已设置,并且根据我的测试该值设置正确。

但是,稍后在相同的代码中$this->value是空的。

这是代码:

<?php

class Padd_Input_Advertisement {

    protected $keyword;
    protected $value;
    protected $name;
    protected $description;

    function __construct($keyword,$name,$description='') {
        $this->keyword = $keyword;
        $this->value = unserialize(get_option($keyword));
        $this->name = $name;
        $this->description = $description;
    }

    public function get_keyword() {
        return $this->keyword;
    }

    public function set_keyword($keyword) {
        $this->keyword = $keyword;
    }

    public function get_value() {
        return $this->value;
    }

    public function set_value($value) {
        $this->value = $value;
    }

    public function get_name() {
        return $this->name;
    }

    public function set_name($name) {
        $this->name = $name;
    }

    public function get_description() {
        return $this->description;
    }

    public function set_description($description) {
        $this->description = $description;
    }

    public function  __toString() {

        $strHTML  = '';
        $strHTML .= '<tr valign="top">';
        $strHTML .= '   <th scope="row"><label for="' . $this->keyword . '">' . $this->name . '</label></th>';
        $strHTML .= '   <td>';
        $strHTML .= '       <label for="' . $this->keyword. '_alt_desc">Short Description</label><br />';
        $strHTML .= '       <input name="' . $this->keyword . '_alt_desc" type="text" id="' . $this->keyword . '_alt_desc" value="' . $this->value->get_alt_desc() . '" size="80" /><br />';
        $strHTML .= '       <label for="' . $this->keyword. '_img_url">Image URL</label><br />';
        $strHTML .= '       <input name="' . $this->keyword . '_img_url" type="text" id="' . $this->keyword . '_img_url" value="' . $this->value->get_img_url() . '" size="80" /><br />';
        $strHTML .= '       <label for="' . $this->keyword. '_web_url">Website</label><br />';
        $strHTML .= '       <input name="' . $this->keyword . '_web_url" type="text" id="' . $this->keyword . '_web_url" value="' . $this->value->get_web_url() . '" size="80" />';
        $strHTML .= '       <br /><small>' . $this->description . '</small>';
        $strHTML .= '   </td>';
        $strHTML .= '</tr>';
        return $strHTML;
    }

}

?>

在顶部function __construct,值已设置,并且我确认会发生这种情况。

但是,在底部函数中function __toString, $this->value是空白的。

知道是什么原因造成的吗?

EDIT

因此,回顾一下,$this->value 在 __construct 函数中设置正确,但在 __toString 函数中为空。

EDIT 2

我还应该提到,在 __construct 函数中设置的其他变量也在 __toString 函数中起作用,例如 $this->keyword。只是 $this->value 变成空白了。

Edit 3这个类是这样调用的

$padd_options['advertisements'] = array(
    new Padd_Input_Advertisement(
        PADD_NAME_SPACE . '_ads_125125_1',
        'Square Ad 1 (125x125)',
        'The advertisement will be posted at the side bar.'
    ),
    new Padd_Input_Advertisement(
        PADD_NAME_SPACE . '_ads_125125_2',
        'Square Ad 2 (125x125)',
        'The advertisement will be posted at the side bar.'
    ),
    new Padd_Input_Advertisement(
        PADD_NAME_SPACE . '_ads_125125_3',
        'Square Ad 3 (125x125)',
        'The advertisement will be posted at the side bar.'
    ),
    new Padd_Input_Advertisement(
        PADD_NAME_SPACE . '_ads_125125_4',
        'Square Ad 4 (125x125)',
        'The advertisement will be posted at the side bar.'
    ),
);

这是因为未序列化的对象确实not如果不知道类的类型,则保留方法。

当您反序列化结果时get_keyword()函数调用,如果序列化对象的类未知,PHP 将回退到特殊类__PHP_Incomplete_Class_Name。这个类基本上是一个虚拟类:它没有任何方法。但是,它允许您访问反序列化对象的属性。

因此,如果您希望能够调用$this->value(这就是你正在做的__toString),您必须包含声明类型的文件$this->value在调用反序列化之前。

[edit]你可以检查PHP 手册 http://php.net/manual/en/language.oop5.serialization.php有关反序列化过程的更多详细信息。

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

$this->价值损失,好吧,它的价值 的相关文章

  • 如何清除 APC 缓存而不使 Apache 崩溃?

    如果 APC 存储大量条目 清除它们会导致 httpd 崩溃 如果 apc clear cache user 花费的时间超过 phps max execution time 调用 apc clear cache 的脚本 将在之前被 php
  • 如果产品重量超过1000克,如何以公斤为单位显示

    在 Storefront 主题中 我使用下面的代码将格式化重量从 1000g 更改为 1kg add action woocommerce after shop loop item title show weight 10 function
  • ZipArchive 提取 - 单个文件

    我有以下代码 ipaFile path file ipa iconFilePath Payload myapp app email protected cdn cgi l email protection the pathway to my
  • PHP cURL 重定向到本地主机

    我正在尝试使用带有 cURL 的 php 脚本登录外部网页 我是 cURL 的新手 所以我觉得我错过了很多东西 我找到了几个例子并修改了它们以允许访问https页面 最终 我的目标是能够登录页面并在登录后通过指定的链接下载 csv 到目前为
  • 理想的 PHP 会话大小?

    我有一个 PHP 表单 抵押应用程序 大约有 400 个字段 该网站的流量会很低 对于进入 MySQL 数据库的 400 个字段 理想的会话大小是多少 In php ini我要设置什么 我应该设置我缺少的任何内容吗 会话的大小没有限制 但
  • 如何在 Laravel 5 中对合并集合进行分页?

    我正在创建一个包含两种类型的对象的流 BluePerson 和 RedPerson 为了创建流 我获取所有这两个对象 然后将它们合并到一个集合中 这样做之后 我需要对它们进行分页 但是分页似乎是针对雄辩的模型和数据库查询 而不是集合 我见过
  • TCPDF / FPDI 可以接受 PDF 作为字符串吗?

    是否可以将 TCPDF 或 FPDI PDF 作为字符串提供 我有一个传入的 PDF 数组作为字符串 但无法写入磁盘 我在文档中找不到与此相关的任何内容 如果没有 是否有一种有效的方法来从内存或作为对象存储 读取这些 PDF 将它们喂给 F
  • 如何使用 RewriteRule 来为 PHP 修改 $_SERVER['REQUEST_URI'] ?

    有了这个 htaccess RewriteEngine On RewriteRule foo foo 1 here I tried L PT C etc RewriteRule index php L 我已经尝试了第一个 RewriteRu
  • PHP:如何发送电子邮件基础知识

    我想使用 PHP 从本地主机向其他人发送电子邮件 我需要做什么才能做到这一点 例如我需要安装邮件服务器吗 如果我没记错的话 有一种语言不需要邮件服务器来发送电子邮件 这样对吗 PHP ini里面有 邮件功能 如何配置这个 我在网上查了一下
  • php递归合并

    我需要以某种不同的方式合并一些数组 我使用 array merge recursive 然而 有一些事情我需要改变 但我不知道如何改变 这是来自 php net 的引用 但是 如果数组具有相同的数字键 则后面的值 不会覆盖原始值 但会追加
  • 如何在 Laravel 5 中的视图模板上显示会话数据

    我正在尝试在 Laravel 5 中的视图模板上显示会话数据 但是它似乎没有显示任何内容 这是我用来设置会话的代码 Session set bookingConfirmed BookingDates where id Session get
  • 正确的标头 php mysql blob 显示图像

    我正在尝试在我的 PHP 页面中显示来自 mysql blob 的图像 我知道这不是最佳实践 然后我会将其引入我的 iOS 应用程序中 我在设置页面标题时遇到问题 我认为需要将其设置为图像 所以 这显示了图像 但我不相信页眉是正确的 hea
  • 使用 DateTime 类计算日期差异时出错

    我正在尝试使用 DateTime 类 php gt 5 3 来计算 2 个日期的差异 手册中的示例简单明了 我尝试了该示例并且效果很好 但如果改变开始和结束日期 就会出现问题 this gt start date 2011 03 01 th
  • 维护 HttpUrlConnection 调用之间的会话(Native/Webview)

    让我从我做的开始desire 我想制作一个应用程序part native and part webviews Problem 维护本机和 webview 部分之间的会话 My 处理方法 this 我打算实现一个本机登录 其中我向用户展示两个
  • 无法显示由 Fine-uploader 上传到 Amazon s3 的图像

    我现在尝试设置fineuploader s3以显示在aws服务器上成功上传的文件的图像 如示例页面上所做的那样 http fineuploader com s3 demo http fineuploader com s3 demo 我 仍然
  • Laravel 上传前如何压缩图像?

    我正在制作一个图片库网站 用户可以在其中上传任何图像 它们将显示在前端 我需要在不影响图像质量的情况下压缩图像 以减小图像大小 以便页面加载速度不会影响那么大 我使用以下代码来上传图像 rules array file gt require
  • Heredoc:常用的“EOT”实际上是什么意思?

    PHP s 定界例子 http www php net manual en language types string php language types string syntax heredoc似乎总是使用 EOT 有时是 EOD 作
  • 通过复选框选择多行时出错错误未定义索引:复选框

    我想从中选择多行checkbox并想通过单击按钮立即更新它们 我尝试了多种方法 但不起作用 你能帮忙吗 它显示错误为Undefined index checkbox td td
  • 使用 html5 分块上传文件

    我正在尝试使用 html5 的文件 API 分块上传文件 然后在服务器端用 php 重新组装它 我正在上传视频 但是当我在服务器端合并文件时 大小增加了 并且它变成了无效文件 请注意 以下 html5 代码仅适用于 chrome 浏览器 在
  • 如何在 PHP >= 5.3 严格模式下向对象添加属性而不产生错误

    这必须很简单 但我似乎找不到答案 我有一个通用的 stdClass 对象 foo没有属性 我想添加一个新属性 bar尚未定义 如果我这样做 foo new StdClass foo gt bar 1234 严格模式下的 PHP 会抱怨 将属

随机推荐

  • Laravel Livewire:输入选择,选择默认选项

    我正在尝试从数据库中获取国家 地区代码 并尝试通过 IP 地址获取默认值 它按照我想要的方式工作了一秒钟 但随后我不知道会发生什么 但它会自行刷新并滚动到第一个选项而不是选定的选项 Livewire 控制器组件 use App Models
  • 为什么在 VCL 控件上调用 TRttiContext.GetType 时某些属性会重复?

    为什么有些属性会重复 例如Action and Align 而其他人则没有 AlignWithMargins 当在 VCL 控件上调用 TRttiContext GetType 时 uses System RTTI System Gener
  • 有没有可以渲染 numpy 数组数据的 pythonplotly/dash 图像小部件?

    我正在评估 pythonplotly 和 或 dash 作为更新图像的链接图的 bokeh holoviews 的替代品 要求 将数据点链接到图像 我有散点图和热图 其中各个数据点代表从图像派生的值 我想从散点图中的数据点链接回该数据点的数
  • QT 甚至在 waitForConnected 运行时进行处理

    我有一个循环 应该尝试连接到范围内的每个 IP for socket gt connectToHost addres port do stuff if socket gt waitForConnected 2000 do stuff if
  • 将图像添加到 gridpane javafx

    我正在使用数组列表添加目录中的图像列表 添加图像时 我的 ScrollPane 变得拥挤 如何保持图像之间的间距 这是我的代码 File file new File D SERVER Server Content Apps icons Fi
  • Gmail API 在发送电子邮件时覆盖自定义 Message-ID 标头

    我们使用 Gmail API 代表我们应用程序的用户发送电子邮件 在我们通过 Gmail API 发送的电子邮件的标头中 我们设置了自定义消息 ID 尽管如此 Gmail 仍会用不同的邮件 ID 覆盖我们设置的邮件 ID 以下是我们尝试过的
  • 无状态与有状态

    我对包含有关编程中无状态和有状态设计的一些具体信息的文章感兴趣 我很感兴趣 因为我想了解更多有关它的信息 但我真的找不到任何关于它的好文章 我在网上读过几十篇文章 这些文章模糊地讨论了这个主题 或者他们正在谈论 Web 服务器和会话 这也是
  • jquery淡出当前div,找到下一个div并淡入或找到最后一个并淡入

    我有一个名为 stage 的 div 类 它是问卷的一个阶段 div class stage div class next Next div div div class stage div class back Back div div c
  • 如何在目标c中获得该月的第n个星期日日期?

    如何在 Objective C 编码中获取第一个星期日或第 n 个星期日或星期一 任意一天 日期 例如 我只想每年在我的应用程序中显示友谊日的日期 但是 友谊是在八月的第一个星期日 所以 日期每年都会改变 在这里我需要找到每年八月的第一个星
  • 使用 .Net 3.5 程序集 SQL 2005 CLR?

    我有一个 CLR 存储过程 它引用在 VS 2008 中创建的使用 Linq 的程序集 我们将此程序集称为 MyLib 我似乎无法将 MyLib 放入我的 SQL 2005 数据库中 我执行以下操作 CREATE ASSEMBLY MyLi
  • 按创建日期对文件排序 - iOS

    我试图获取 i 目录中的所有文件并根据创建日期或修改日期对它们进行排序 那里有很多例子 但我无法让其中任何一个起作用 有人有一个很好的例子如何从按日期排序的目录中获取文件数组吗 这里有两个步骤 获取文件列表及其创建日期 并对它们进行排序 为
  • 使用 youtube API 获取频道的所有视频

    我想获取具有 ID 的单个频道的所有视频 我只获得频道信息的问题 这是我正在使用的链接 该链接适用于现已停用的 V2 API 因此它不会返回任何数据 相反 您需要使用 API 的 V3 您需要做的第一件事是注册 API 密钥 您可以通过在以
  • 在 OS X El Capitan 上将项目迁移到 Xcode 7.2 会破坏构建

    我之前使用 Xcode 7 1 运行 OS X Mavericks 我刚刚更新到 OS X El Capitan 和 Xcode 7 2 我的应用程序在模拟器和设备上正常启动 没有任何类型的故事板警告 现在 我看到一堆关于故事板中缺少约束的
  • 更改 RMarkdown 代码输出中错误消息的颜色(HTML、PDF)

    有没有办法在 R Markdown 中自动将错误的文本颜色设置为红色 而无需稍后手动编辑 HTML title Example 1 r e1 error TRUE 2 A Example 2 r e2 error TRUE 2 2 在上面的
  • 有没有办法更改 Visual Studio Code 的扩展文件夹位置?

    我已经安装了 Visual Studio CodeOneDrive https en wikipedia org wiki OneDrive 以便将其与我的设备上的设置同步 但是 扩展名存储在 USERPROFILE vscode exte
  • 将复选框数组从 js 发送到 django 视图

    我对如何通过 Ajax 或 Json 执行此操作感到困惑 但是如何将选择数组 curCheck 单击发送到 Django 视图并将其作为 python 数组接收 javascript document getElementById resu
  • 如何专注于 jasmine.js 中的一项规范?

    由于相当大的架构变化 我有一堆失败的规格 我想通过用 焦点 标记每个问题来一一修复它们 jasmine js有这样的功能吗 我发誓我曾经读到过它确实如此 但我在文档中没有看到它 使用 Karma 时 您只能启用一项测试fit or fdes
  • GWT DataGrid 中的延迟加载数据

    是否可以将数据延迟加载到 GWT DataGrid 中 类似于 GWT CellList 延迟加载数据的方式 我有一个 GWT DataGrid 它可能会带回数百行 但一次只显示大约 20 行 发生这种情况时 网格的加载速度相当慢 我想使用
  • 带有语义 UI 可见侧边栏的推送内容太宽

    当使用可见的语义 UI 侧边栏时 推送器中的内容太宽 它具有浏览器窗口的宽度 而不是可用空间的宽度 div class pushable div class ui left vertical inverted visible sidebar
  • $this->价值损失,好吧,它的价值

    我正在使用的 PHP 文件有问题 而且我似乎找不到解决方案 在代码的一部分中 值 this gt value已设置 并且根据我的测试该值设置正确 但是 稍后在相同的代码中 this gt value是空的 这是代码