0

私は私のfile.phpにコードを挿入するこの関数を持っています:

function InsertData($nombre, $var1, $var2, $var3)
{
    $file = fopen("$nombre".".php", "r+");
    // Seek to the end
    fseek($file, SEEK_END, 0);
    // Get and save that position
    $filesize = ftell($file);
    // Seek to half the length of the file
    fseek($file, SEEK_SET, $filesize / 1);
    // Write your data
    fwrite($file, "<?php
class " ."$nombre". "\n
{\n
private $" ."$var1;". "\n
private $" ."$var2;". "\n
private $" ."$var3;". "\n
\n\n
    public function __construct()\n
    {\n
        $this->setData($" ."$var1". ", $" ."$var2". ", $" ."$var3". ");\n
        //parent::__construct();\n

    }
\n\n
    public function setData($" ."$var1". ", $" ."$var2". ", $" ."$var3". ")\n
    {\n
        $this->" ."$var1". "= $" ."$var1;". "\n
        $this->" ."$var2". "= $" ."$var2;". "\n
        $this->" ."$var3". "= $" ."$var3;". "\n
    }
\n\n
    public function printData()
    {\n
        echo \"SomeThing : \" . $this->" ."var1". ". \" \" . $this->" ."var2". ".     \"\n\";\n
        echo \"Other : \" . $this->" ."var3". ". \"\n\";\n
    }
\n\n
}
\n\n
?>");
    // Close the file handler
    fclose($file);
}

しかし、私がそれを呼び出すと、このエラーが発生します: Catchable fatal error: Object of class Creator could not be convert to string in create.php on line 37

37行目は次のとおりです。

$this->" ."$var1". "= $" ."$var1;". "\n

他のファイルで次のように呼び出しています:

$lol = new Creator();
$lol->CreateFile($input);
$lol->InsertData($input, $input1, $input2, $input3);

どうすればこれを解決できますか?

4

1 に答える 1

0

生成しようとしているクラス全体に間違った引用符を使用しています。"二重引用符を一重引用符に変更してみてください'。エラーは、"$this"PHP を使用するときに を呼び出そうとしているためです。$this->__toString()このコンテキストでは、$thisまだ外部コードの変数です。(一重引用符で)を使用する'$this'ことは、単純な文字列にすぎません。

別の解決策は、前にバックスラッシュを追加することです$this-"\$this"

于 2012-12-20T16:41:44.313 に答える