PHPでのエラー(unexpected T_STRING~)

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

PHPでのエラー(unexpected T_STRING~)

PHP5で、以下のクラスで構文エラーが出てしまいます。 //=================================================== <?php class fileUpload{ define (kakunou_PATH, "../cast_img/" .$_FILES["file_data1"]["name"]); var $error_message; function fileUpload($ftmp_name, $fsize;){ (省略) } } //=================================================== *****エラーメッセージ******************************** Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /home/sites/heteml/users61/v/e/n/venusline/web/config/fileUpload_class.php on line 5 ***************************************************** 5行目はdefine()の行です。 ちなみにここでパスを定義してますが、 define()を使うのでは無く var $path = 'パス名'; としても同じエラー。 また、$_FILESの記述を削っても同じエラーが出ます。 エラー文中のT_OLD_FUNCTION が気になったので、 一応コンストラクタを__constructにも変えてみたのですがやはりダメでした・・ どなたかエラーの原因が解る方、どうぞ宜しくお願いします。

  • PHP
  • 回答数3
  • ありがとう数3

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

  • ベストアンサー
  • 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% (5072/13251)
回答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

  • PHPのエラー教えて!parse error, unexpected T_STRING

    すみません PHPのエラー教えてください ------------------------------内容は↓ <?php // まずはクラス名を指定 class AboutMe { // 変数のタイプを指定します ●ここ●public $name = "デイビッド田中"; public $email = "david.tanaka@davidtanaka.localdomain"; public $phone = "011-81-333-333-3333"; } // クラスを呼び出します。 $About = new AboutMe(); // 情報を表示します print($About->name); ?> ---------------------------------ココまで ●ここ●は印のために入れたもの エラーは parse error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in ●ここ● エラー番号は●ここ●を指しています WindowXP、Apache、PHP5

    • ベストアンサー
    • PHP
  • PHPでParse errorについて

    PHPでParse errorについて PHP設置した際に Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /当HPのアドレス/VoteBorn/VoteController.php on line 9 が表示されているのですが 9行目付近を見直しても間違えがわかりません。 <?php //VoteControllerから見たMatrixController.phpへの相対パス require_once "./MatrixController.php"; //Version 1.00 //Made by Nearliquid class VoteController extends MatrixController { private $col_list = array("id", "name", "Vote"); private $target_row = NULL;//ターゲットの行 private $target_vote = NULL;//ターゲットの投票数 private $now_row; public function makeFile($vote_file) { $this->makeMatrix($vote_file, $this->col_list); } //この関数を使わないと、これより下の関数は使用できない。 public function readFile($fp) { $this->readMatrix($fp); } public function checkNameCrash($name) { if($this->getTargetRow("name", $name) === FALSE) {//登録予定の名前は現在投票システム上には存在しない return(TRUE); } else {//二重登録 return(FALSE); } } 以下略・・・・ 申し訳ないのですが 是非ご教示の程よろしくお願いします

    • ベストアンサー
    • PHP
  • PHP T_STRINGエラー?

    新しくPHPのサイトを作成しようとしたんですが、 syntax error, unexpected '{', expecting T_STRING in と表示されてどうにも使用がありません。 どこが原因でエラーが出てるのでしょうか? エラー行は7行と表示されていますが、いまいちわかりません スクリプトは以下の記述の通りです <?php require './Request.php'; require './Cookie.php'; final class SystemMain extends { private static $instance; private $modeName; public static function getInstance() { if (self::$instance === null) { self::$instance = new SytemMain(); } return self::$instance; } public function setMode() { if (file_exists('./maintenance')) { $this->modeName = 'Maintenance'; } else { $str = Request::both('mode'); if (!$str) { $this->modeName = 'Top'; } else if (file_exists('./script/mode/' . $str . '.php')) { $this->modeName = $str; } else { $this->modeName = 'NotFound'; } } require_once './script/mode/' . $this->modeName . '.php'; } public function getMode() { return $this->modeName; } } ?> Request.php <? class Request extends { public static function get($str) { return isset($_GET[$str]) ? $_GET[$str] : null; } public static function post($str) { return isset($_POST[$str]) ? $_POST[$str] : null; } public static function both($str) { $post = self::post($str); return $post ? $post : self::get($str); } } ?> Cookie.php <? class Cookie extends { public static function set($name, $value, $expire = 0) { return setcookie($name, $value, $expire); } public static function get($str) { return isset($_COOKIE[$str]) ? $_COOKIE[$str] : null; } public static function clear($str) { $_COOKIE[$str] = ""; return setcookie($str, ""); } } ?>

    • ベストアンサー
    • PHP
  • PHPでクラス内のpublicでエラーになる原因

    Apache/1.3.27を使っています。 下記コードをローカルで表示すると Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in c:\phpdev\www\ajax\sql.php on line 11 というエラーが出てしまいます。 なぜエラーになるのか原因が分かりません。 アドバイスを頂けないでしょうか。 <html> <head><title>PHP TEST</title></head> <body> <?php $tv = new Television(); $tv->$channelNo = 8; $tv->dispChannel(); class Television{ public $channelNo; function dispChannel(){ print('現在のチャンネルは'.$this->channelNo); } } ?> </body> </html>

    • ベストアンサー
    • PHP
  • constでパースエラー

    <?php class hoge { const MOGE = 'moge'; function poge() { echo 'poge'; } } ?> なコードを書くと、 Parse error: syntax error, unexpected T_CONST, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in ...\test.php on line 5 とのエラーがでます。 constの部分をコメントアウトすればエラーはでません。 環境は、WindowsのXAMPP環境で、PHPのバージョンを4に変更してテストしているところなのですが... PHP Version 4.4.8 Apache/2.2.8 PHP5の環境では、正常に動作しました。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • unexpected T_REQUIRE とは?

    <? php require('Smarty.class.php'); require('Logging.class.php'); …・ と書いてあるlogging_gui.phpファイルをブラウザで開こうとすると、 Parse error: syntax error, unexpected T_REQUIRE in C:\Program Files\Apache Group\Apache2\**********\logging_gui.php on line 3 というエラーが出ます。 PHPマニュアルでT_REQUIREを調べてみましたが、意味が分かりません。 テンプレートはtemplates_cにコンパイルされています。 何が不具合であると言っているのでしょうか? Logging.class.phpの中身に間違いがあるということでしょうか? エラーをなくすには何をチェックすればよいのでしょうか? 超初歩的、かつ漠然とした質問かも知れませんが、よろしくお願いします。

    • 締切済み
    • PHP
  • エラーメッセージの意味をおしえてください

    以下のエラーメッセージの意味をおしえてください。ワードプレス更新中に画面が真っ白になり、エラーメッセージが出るまでたどり着きましたが以下のメッセージの意味が分かりません。わかる方、至急教えてください。 Parse error: parse error, unexpected T_CONST, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /home/takada-group/lazycurry.net/public_html/wp-content/plugins/akismet/class.akismet.php on line 4

  • PHPのエラーについて

    このファイルを実行した際に下記のようなエラーが出力されます。 Parse error: syntax error, unexpected '$yamada' (T_VARIABLE), expecting ',' or ';' in C:\xampp\htdocs\study.localhost\sample.php on line 30 何が原因でこのようなエラーが発生しているのでしょうか? 初心者で的外れな質問かもしれませんがよろしくお願います。 <?php class Employee { public $name; private $state = '働いている'; public function getState() { return $this->state; } public function setState($state) { $this->state = $state; } public function work() { echo '書類を整理しています'; } } ?> <?php $yamada = new Employee(); $yamada->job = 'プログラマ'; $yamada->name = '山田'; $yamada->setState('休憩している'); 30行目→echo $yamada->name,'さんは', $yamada->getState();

  • なぜ、unexpected T_VARIABLEになるのでしょうか? 

    WindowsXP機に、PHP5とPEARを入れています。 あるWebサイトに記述されている下記のサンプルスクリプトをコピペして(PEARは絶対パスに書き換えて)実行しましたが、次のエラーが出ます。全角スペースは入っていませんし、原因が分かりません。 なぜ、unexpected T_VARIABLEになるのでしょうか? どのようにすれば解決できるでしょうか? エラー Parse error: syntax error, unexpected T_VARIABLE, expecting T_FUNCTION in C:\Program Files\Apache Group\Apache2\htdocs\HQuickForm_test\QfrmSmpl.php on line 14 サンプルスクリプト一部抜粋: <?php require_once("C:\php\PEAR\HTML\QuickForm.php"); class QfrmSmpl{ var $_form; function QfrmSmpl($sbmtAct){ $this -> _form = new HTML_QuickForm("frmSmpl","post",$sbmtAct); } function setForm(){ $this -> _form -> addElement("text","txtName","名前(全角日本字):"); $this -> _form -> addElement("text","txtEname","名前(半角英字):"); $this -> _form -> addElement("text","txtEmail","E-mail:"); $this -> _form -> addElement("text","txtEmail2","E-mail(確認用):"); $this -> _form -> addElement("textarea","txtrComment","コメント:"); } $this -> _form -> applyFilter(__ALL__,"trim"); $this -> _form -> addRule("txtName","名前を入力!","required", null, "client"); $this -> _form -> addRule("txtEname","半角英字で入力!","alphanumeric", null, "client"); $this -> _form -> addRule(array("txtEmail","txtEmail2"),"メールアドレス不一致!","compare", null, "client"); $this -> _form -> addRule("txtEmail","無効なメールアドレス!","email", null, "client"); $this -> _form -> addRule("txtrComment","コメントを入力!","required", null, "client"); $this -> _form -> setRequiredNote("<font color='red'>*</font>必須入力"); } 以下略

    • ベストアンサー
    • PHP
  • URLを入力したら次のエラー表示が出ました。

    つい先日までは、問題なくwebサイトが表示されていたのに、今回は、以下の表示が出て、サイトを開けません。 Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /home/mh200609/public/www/aladdin_amazon/lib/amazonAPI.php on line 8 どのように処置したらいいのでしょうか?

専門家に質問してみよう