アプリ版:「スタンプのみでお礼する」機能のリリースについて

PHPでFilename cannot be empty他の警告(Warning)発生しています。

PHP初心者です。
テンプレートを使ってファイルを作成する機能をつくりました。
一応動いているようなのですが、実行するとWarningが発生します。
解消する方法をご存知でしたらご教授ください。

オブジェクト指向で組んでみたので、それが原因かもと思うのですが、解消
策がわからず困っています。

よろしくお願いします。

◆警告メッセージ

Warning: fopen(): Filename cannot be empty in C:\path\CreateFile.php on line 31
Warning: fwrite() expects parameter 1 to be resource, boolean given in C:\path\CreateFile.php on line 32
Warning: fclose() expects parameter 1 to be resource, boolean given in C:\path\CreateFile.php on line 33

以下サンプルコードです。
◆クラスファイル
<?php
class CreateFile
{
// テンプレートファイル名
public $templateFile;
// 保存ファイル名
public $createdFile;
// 置換キーワードセット arrayで指定
public $values;

// ファイル生成
public function createFile()
{
// ファイルを生成する
$data = "";

if($this->templateFile){
$data = file_get_contents($this->templateFile);
}
if (is_array($this->values)) {
foreach ($this->values as $key => $val) {
$data = str_replace($key, $val, $data);
}
}
// ファイルを生成する
$fp = fopen($this->createdFile, 'w');
fwrite($fp, $data);
fclose($fp);
}
}

?>

◆メイン
<?php
require_once './class/CreateFile.php';

// インスタンス生成
$cdFile = new CreateFile();

// テンプレート名設定
$cdFile->templateFile = './template.tpl';
// 保存ファイル名設定
$cdFile->createdFile = './hoge.txt';

$cdFile->values = array('<%VALUE>' => 'テストです');

$cdFile->createFile();

echo '++++++++++ End CreateFile ++++++++++';

?>

A 回答 (2件)

PHP4では、Javaと同じように、クラス名と同一のメソッド名を、コンストラクタとなってまして、


PHP5でも、下位互換のためにそうなります。

ので、メソッド名を変更してみてください。(executeとか、createとか)
    • good
    • 1
この回答へのお礼

ご指摘ありがとうございます♪
コンストラクタのことを失念していました(^_^;)
ぼけた頭でやるとだめですね。

早朝から回答ありがとうございました<m(__)m>

お礼日時:2010/09/28 10:15

PHPでは関数名で大文字小文字を区別しないので


createFileとCreateFileは同じとみなされます
    • good
    • 0
この回答へのお礼

ご指摘ありがとうございます♪
コンストラクタのことを失念していました(^_^;)
ぼけた頭でやるとだめですね。

お礼日時:2010/09/28 10:14

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!