-1

私はphpでオブジェクトを使用しています。データベースサーバーに接続するオブジェクト$conオブジェクトとデータベースサーバーにクエリを送信する$opt(操作)オブジェクトがありますが、これまで問題はありませんでした。問題は、$ conオブジェクトを静的として定義し、で定義したことです。以下のコードに示すように、$optオブジェクト

  class operations{

   public static $con = null;
   public function __construct($tableName = null){

     // Creating  an object of connection 
     self::$con = new config();
     self::$con = self::$con->getConnection();
   }

  } 

したがって、$ conオブジェクトを呼び出したい場合は、問題はありません。

mysql_query($query,$opt::$con) or die (mysql_error());  

しかし、サーバーではこのエラーが表示されます

Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM
4

2 に答える 2

0

T_PAAMAYIM_NEKUDOTAYIMはヘブライ語であり、PHPのスコープ解決演算子(「::」)を参照します。このメッセージが表示された場合は、PHPがクラス名を認識し、スコープ解決演算子を使用してクラス名にアクセスすることを期待していることを意味します。

アップデート:

コードの編集を確認した後、呼び出しを間違えました。正しい構文は次のとおりです。

mysql_query( $query, operations::$con ) or die (mysql_error());
于 2012-09-22T11:33:54.313 に答える
0

スコープの解決は予期しないものです。つまり、悪い状況で使用しているということです。「::」はいつ使用しますか?の後self staticに、classnameまたはクラスの名前を表す文字列:

 static::PropertyOrMethod;
 self::PropertyOrMethod;
 CLassName::PropertyOrMethod
 $string = "className";
 $string::PropertyOrMethod

その代わりに、クラスのansインスタンスで使用しますが、phpはそれを好みません。mysql_query($ query、operations :: $ con)またはdie(mysql_error());を使用する必要があります。

于 2012-09-22T11:42:44.407 に答える