Php 从字符串内部查询类?

Php 从字符串内部查询类?,php,string,class,Php,String,Class,假设我有这样一个类: class Database { public static $hostname = 'localhost'; } 有没有办法做到这一点 $createDatabaseQuery=“创建数据库,如果不存在数据库::$hostname” 当前,我在尝试从字符串中访问类时遇到错误,我希望避免这种情况: $hostname = Database::$hostname; $createDatabaseQuery = "CREATE DATABASE IF NOT EXIS

假设我有这样一个类:

class Database
{
    public static $hostname = 'localhost';
}
有没有办法做到这一点

$createDatabaseQuery=“创建数据库,如果不存在数据库::$hostname”

当前,我在尝试从字符串中访问类时遇到错误,我希望避免这种情况:

$hostname = Database::$hostname;
$createDatabaseQuery = "CREATE DATABASE IF NOT EXISTS $hostname";

在双引号中,只能使用“变量表达式”。它们必须始终以要解释的
$
{$
开头。并且,如果没有类限定符,则无法直接访问类变量

唯一的解决办法是:

 $Database = "Database";   // class name
 "CREATE DATABASE IF NOT EXISTS {$Database::$hostname}";
但那只是另一种更糟的情况

这就是“变量表达式”的替代方案:

 $var = "mysql_real_escape_string";   // trick
 "CREATE DATABASE IF NOT EXISTS {$var(Database::$hostname)}";

在双引号中,您只能使用“变量表达式”。它们必须始终以要解释的
$
{$
开头。并且,如果没有类限定符,您无法直接访问类变量

唯一的解决办法是:

 $Database = "Database";   // class name
 "CREATE DATABASE IF NOT EXISTS {$Database::$hostname}";
但那只是另一种更糟的情况

这就是“变量表达式”的替代方案:

 $var = "mysql_real_escape_string";   // trick
 "CREATE DATABASE IF NOT EXISTS {$var(Database::$hostname)}";
在某些情况下,使用帮助——但不幸的是,在这种情况下不是这样

引用该页的相关部分:

使用单花括号(
{}
)将 无法访问报税表 函数或方法的值或 类常量或静态 类变量


最后必须使用字符串连接:

$createDatabaseQuery = "CREATE DATABASE IF NOT EXISTS " . Database::$hostname;
在某些情况下,使用帮助——但不幸的是,在这种情况下不是这样

引用该页的相关部分:

使用单花括号(
{}
)将 无法访问报税表 函数或方法的值或 类常量或静态 类变量


最后必须使用字符串连接:

$createDatabaseQuery = "CREATE DATABASE IF NOT EXISTS " . Database::$hostname;