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
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 做个有关计算的小程序
  • ¥15 MPI读取tif文件无法正常给各进程分配路径
  • ¥15 如何用MATLAB实现以下三个公式(有相互嵌套)
  • ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下
  • ¥15 setInterval 页面闪烁,怎么解决
  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化