- 此问题在此处已有答案**:
Constructor in PHP(2个答案)
22小时前关门了。
我在7.4中有以下代码,它对我有效,现在在8.1中它对我无效...我通过替换foreach更正了它,但仍然有以下错误
未定义的属性:普朗蒂拉::$mihtml
我希望你能帮助我我不知道如何解决这个问题
<?php
class Plantilla{
function Plantilla($template_file){
$this->tpl_file =$template_file ;
}
function asigna_variables($vars){
$this->vars= (empty($this->vars)) ? $vars : $this->vars . $vars;
}
function muestra(){
$this->template_file = $this->tpl_file;
$this->mihtml = $this->template_file;
$this->mihtml = str_replace ("'", "\'", $this->mihtml);
$this->mihtml = preg_replace('#\{([a-z0-9\-_]*?)\}#is', "' . $\\1 . '", $this->mihtml);
reset ($this->vars);
foreach($this->vars as $key => $val) {
$$key = $val;
}
eval("\$this->mihtml = '$this->mihtml';");
reset ($this->vars);
foreach($this->vars as $key => $val)
{
unset($$key);
}
$this->mihtml=str_replace ("\'", "'", $this->mihtml);
return $this->mihtml;
//AQUI SI QUEREMOS USARDEFRENTE EN PARA MOSTTRAR SE DEBE CAMBIAR A ''ECHO'
}
}
$COD_RANDOM ='1234567899999999999999999999999999999999999';
$Contenido=new Plantilla('el codigo es {CODIGO_RANDOM}');//al Pasar como parametro Prueba, asumimos que en la carpeta plantillas existe un archivo de nombre Prueba.tpl
$Contenido->asigna_variables(array(
"CODIGO_RANDOM" => $COD_RANDOM //codigo generado
));
#$ContenidoString = $Contenido->muestra();//$ContenidoString contiene nuestra plantilla, ya con las variables asignadas, fácil no?
$mensajebody=$Contenido->muestra();
echo $mensajebody;
?> ```
espero me puedan ayudar por favor
1条答案
按热度按时间ycl3bljg1#
创建$Contenido对象时,您将提供$template。
你的意思是把它设置为类的局部属性,但是PHP中的构造函数不是通过类名调用,而是通过特殊的名称
__construct()
调用类的代码应该以下面的代码开头
请遵循本手册:https://www.php.net/manual/en/language.oop5.decon.php