![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
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にも変えてみたのですがやはりダメでした・・
どなたかエラーの原因が解る方、どうぞ宜しくお願いします。
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
この回答への補足
#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
ということになります。私にはこの行以外のどこかに間違いがあるように思えるのですが・・
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が見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- PHP php エラー 2 2022/10/23 16:43
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- オープンソース Coinmarketcap api 1 2022/05/30 15:47
- Visual Basic(VBA) VBA 改行コードの取り方 1 2022/03/22 14:14
- その他(プログラミング・Web制作) cryptcatのビルド 4 2022/07/21 14:55
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- PHP php テーブルが作成できない 1 2022/11/17 23:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アップロードファイル名の文字化け
-
Flaskでサーバー立ち上げに関して
-
php の処理をした結果をカウン...
-
mySQLのデータを多次元配列に格...
-
foreachがうまく動かない
-
連想配列について
-
name属性が全角の場合・・・
-
PHPのリロード時の処理
-
HTMLで前の画面に戻る時、入力...
-
PHPでURLにジャンプするには?
-
DBの値をチェックボックスに反...
-
<input type="hidden" >で配列...
-
ボタンをクリックでPHP文を実行
-
入力フォーム→確認画面→送信画...
-
php mysql でチェックボックス...
-
検索時の選択内容を保持する方法
-
syntax error, unexpected '}' ...
-
「"」(ダブルクォーテーション)...
-
画面が更新されてもチェックボ...
-
PHPで受け取ったパラメータを別...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA で、スペースを含むファイ...
-
ファイル名を変更してアップロ...
-
アップロードファイル名の文字化け
-
PHPからHTMLへの変数の受け...
-
プログラミングC++のmapについて
-
phpで変数を使ってcopyできない
-
Flaskでサーバー立ち上げに関して
-
SQLインジェンクション対策法を...
-
POSTの項目に追加
-
パラメータを2個つけたい
-
サブフォルダ内の全てのテキス...
-
フォームで送られてきたメール...
-
PHP FTPサーバへの画像アップロ...
-
連想配列を複数条件で比較して...
-
name属性が全角の場合・・・
-
if function PHP
-
マクロ(VBA)について
-
PDOのprepareでLIKEの部分一致...
-
画像をDBに登録できない
-
テキストボックスの値を取得したい
おすすめ情報