• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHPでのエラー(unexpected T_STRING~))

PHPでのエラー(unexpected T_STRING~)

このQ&Aのポイント
  • PHP5で、以下のクラスで構文エラーが発生しています。
  • エラーメッセージには、T_STRINGが予期せず現れているとあります。
  • define()の使用方法や__constructの代替方法を試しましたが、解決できませんでした。エラー原因をご存知の方、助けてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • inu2
  • ベストアンサー率33% (1229/3720)
回答No.3

No1です。訂正です ごめんなさい。fileUploadっていうメソッドは既にあったですね・・・ php5だと class fileUpload{ const kakunou_PATH = "../cast_img/"; protected $_path; protected $error_message; function __construct($ftmp_name, $fsize){ $this->_path = self::kakunou_PATH.$_FILES["file_data1"]["name"]; //(省略) } } //end of class php4だとこうです。 class fileUpload{ const kakunou_PATH = "../cast_img/"; var $_path; var $error_message; function fileUpload($ftmp_name, $fsize){ $this->_path = self::kakunou_PATH.$_FILES["file_data1"]["name"]; //(省略) } } //end of class

HYSTER
質問者

補足

#1さん>お返事ありがとうございます☆ 確かにコンストラクタの前でグローバル変数を突っ込むのはおかしいですね・・(_ _;) constも勉強になりました! しかしご教示の通り、自分でも間違いを納得しつつ以下のソースへ直しましたが、まだ同じエラーが出てしまいます。(行数も同じ) ---今回は修正ソースをまんまコピペしてます----------------------- <?php class fileUpload{ const kakunou_PATH = "../cast_img/"; var $_path; var $error_message; function fileUpload($ftmp_name, $fsize){ $this->_path = self::kakunou_PATH.$_FILES["file_data1"]["name"]; if ($fsize == 0) { $this->error_message = "ファイルが存在しません"; return $this->error_message; exit; } else { //アップロードファイルされたテンポラリファイルをファイル格納パスにコピーする $result = @move_uploaded_file($ftmp_name, $this->filename); if ($result == "true") { $this->error_message = "0"; } else { $this->error_message = "アップロード失敗"; } } return $this->error_message; } } ------------------------------------------------------------ 初めは#2さんのおっしゃる通りネストチェックもしてみたのですが・・ 前回と全く同じエラー文なので、エラー行は最初の定義行 const kakunou_PATH ということになります。私にはこの行以外のどこかに間違いがあるように思えるのですが・・

その他の回答 (2)

  • t_ohta
  • ベストアンサー率38% (5241/13712)
回答No.2

Parse error なんで、一つ前の行で括弧が足りないとか;が抜けてるとか言うことは無いでしょうか。

  • inu2
  • ベストアンサー率33% (1229/3720)
回答No.1

根本的にPHP(というか他の言語でもいえますが)の文法を理解されていないのではないでしょうか? class内定数は、defineはなく、constで定義します。 const kakunou_PATH = "../cast_img/" .$_FILES["file_data1"]["name"]; ただし、これもエラーです。 class内定数は、変数を代入できません。というか、グローバル変数をここで突っ込むこと事態がおかしいことです。 const kakunou_PATH = "../cast_img/"; と定義しておいて、 const kakunou_PATH = "../cast_img/"; protected $_path; public function __construct(){ $this->_path = self::kakunou_PATH.$_FILES["file_data1"]["name"]; } コンストラクタで $this->_pathに突っ込んでおきましょう。 さらに、ここ。 function fileUpload($ftmp_name, $fsize;){ $fsize の後の「;」は不要 function fileUpload($ftmp_name, $fsize){ こうなります。 まとめると class fileUpload{ const kakunou_PATH = "../cast_img/"; protected $_path; protected $error_message; public function __construct(){ $this->_path = self::kakunou_PATH.$_FILES["file_data1"]["name"]; } function fileUpload($ftmp_name, $fsize){ //(省略) } } //end of class こんな感じです。 ただし、PHP5での書き方です。PHP4だと class fileUpload{ const kakunou_PATH = "../cast_img/"; var $_path; var $error_message; public function fileUpload(){ $this->_path = self::kakunou_PATH.$_FILES["file_data1"]["name"]; } function fileUpload($ftmp_name, $fsize){ //(省略) } } //end of class こんな感じです。

関連するQ&A