Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将文本替换为类函数_Php - Fatal编程技术网

Php 将文本替换为类函数

Php 将文本替换为类函数,php,Php,我遇到了一个问题,我想我的编程方式有什么解决方案吗。我希望每个人都能理解这个问题,并能提供帮助 我有html模板,比如说: <title>{Content~title}</title> </head> <body> {Content~Display("testas")} </body> $this->objects[$class] = new $class(); // in this case: Content clas

我遇到了一个问题,我想我的编程方式有什么解决方案吗。我希望每个人都能理解这个问题,并能提供帮助

我有html模板,比如说:

<title>{Content~title}</title>
</head>
<body>
    {Content~Display("testas")}
</body>
$this->objects[$class] = new $class(); // in this case: Content class
现在,我有了加载类并放入数组的脚本,如下所示:

<title>{Content~title}</title>
</head>
<body>
    {Content~Display("testas")}
</body>
$this->objects[$class] = new $class(); // in this case: Content class
之后,我试图通过以下代码替换标记{Content~title}和{Content~Display(“testas”)}:

$replaceContent = $this->objects[$class_name];
$content = str_replace($current,$replaceContent->{$key},$content); // key- Display("testas")
使用title(因为它是class属性)效果很好,但使用function时我出现了错误:

Notice:  Undefined property: Content::$Display("testas") ..
但是,如果我尝试使用以下方法:

echo $replaceContent->Display("TEST");

工作很好。。。你知道如何替换我的标签来处理类中的内容吗?

你试图访问类中不存在的字段[如错误所述]

当您有一个函数时,您必须调用它:

$replaceContent->{$key}( $content )

这将调用您的
Display()
函数,顺便说一句,它应该用小写字母命名,并且应该做的不仅仅是重新调整它的参数。

您不应该将整个部分放入
变量中。您应该有两个变量,例如:

$functionName = 'Display';
$functionArg = 'testas';
除此之外:

$replaceContent->$functionName($functionArg)

哼它起作用了,但问题是。。我不能使用参数etc:Display(“123456”)。。显示:致命错误:调用未定义的方法内容::显示(“123456”)()…哼哼。。谢谢你们。。你的两种解决方案都是我问题的答案,所以我不知道我应该为谁单击“解决”。。对不起:/