doulei1965 2018-12-02 17:26
浏览 61
已采纳

类App \ Http \ Controllers \ ConfigClass的对象无法转换为字符串

I have 2 class:

namespace App\Http\Controllers;

class ConfigClass  {
    const ERROR_STATUS = 'kod html [[X]] error';
}

Second class:

use App\Http\Controllers\ConfigClass;

class StatusMessageClass
{

    public function __construct()
    {
        $this->config = new ConfigClass();
    }

    public function createMessageWithStatus(string $messageType, string $description): array
    {
        $classValue = $this->config.'' . $messageType;
        $html = str_replace("[[X]]", $description, $classValue);
        $message = array(
            'messageType' => $messageType,
            'html' => $html,
            'description' => $description
        );
        return $message;
    }

}

And i use this code:

$val = $messageBox->createMessageWithStatus('ERROR_STATUS', "Błędny login lub hasło")

I have error in line (Object of class App\Http\Controllers\ConfigClass could not be converted to string)

$classValue = $this->config.'' . $messageType;

How can i repeir this?

I need this result: $classValue = $this->config::ERROR_STATUS; But I need get this value "ERROR_STATUS" from $messageType in function

  • 写回答

1条回答 默认 最新

  • doudi1979 2018-12-02 17:44
    关注

    Class constants are not supposed to be retrieved from an instance.

    So you can get ConfigClass::ERROR_STATUS but not $this->config::ERROR_STATUS.

    A workaround is to use get_class() to turn $this->config back into ConfigClass, then you can use the constant() function to retrieve whatever constant is in $messageType:

    $classValue = constant(get_class($this->config) . '::' . $messageType);
    

    If you know you will always get the constants from ConfigClass, you can simplify this using the class name (and double quotes for variable interpretation):

    $classValue = constant("ConfigClass::$messageType");
    // you may need the full namespaced class: \App\Html\Controllers\ConfigClass
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 yalmip+Gurobi
  • ¥20 win10修改放大文本以及缩放与布局后蓝屏无法正常进入桌面
  • ¥15 angular开发过程中,想要读取模型文件,即图1的335行,会报404错误(如图2)。但我的springboot里配置了静态资源文件,如图3。且在该地址下我有模型文件如图4,请问该问题该如何解决呢?
  • ¥15 itunes恢复数据最后一步发生错误
  • ¥15 关于#windows#的问题:2024年5月15日的win11更新后资源管理器没有地址栏了顶部的地址栏和文件搜索都消失了
  • ¥100 H5网页如何调用微信扫一扫功能?
  • ¥15 讲解电路图,付费求解
  • ¥15 有偿请教计算电磁学的问题涉及到空间中时域UTD和FDTD算法结合的
  • ¥15 vite打包后,页面出现h.createElement is not a function,但本地运行正常
  • ¥15 Java,消息推送配置