PHP常量在类内部设置,但我现在需要在类外改变它,可以这样做吗?

时间:2011-04-21 07:04:27

标签: php class variables constants

我有一个简单的核心类,用于小型Web应用程序的核心功能。我在类中定义了一些常量 - 主要是静态函数 - 我想在类之外设置/编辑这些常量,例如:

class core{
  const connection = '';
  public static function someSqlScript(){
    $sql = "SELECT * FROM sometable WHERE someconditions";
    $exec = mysqli_query(self::connection, $sql);  
  }
}

现在,我希望能够设置连接常量,以便它引用一个mysql连接对象,该对象(通过另一个脚本)已经被分配给变量$ con,所以基本上我是在追求类似这样:

core::connection = $con; //send connection for use in class
core::someSqlScript(); //should not perform the MySQL query using conneciton $con as above

非常感谢任何帮助,我习惯在类中使用非静态函数和变量,但是带有常量的静态函数让我感到高兴。

感谢所有人。

2 个答案:

答案 0 :(得分:3)

常量的含义是,您无法更改它。您需要静态变量

class core{
  public static $connection = '';
  public static function someSqlScript(){
    $sql = "SELECT * FROM sometable WHERE someconditions";
    $exec = mysqli_query(self::$connection, $sql);  
  }
}

core::$connection = $con; 
core::someSqlScript(); 

请注意public static $connection而不是const connectionself::$connection而不是self::connection(也是core::$connection而不是core::connection)。

答案 1 :(得分:2)

constants的想法是,在定义之后不能改变它们。