在面向对象的php中设置全局变量和数据库[关闭]

问题描述 投票:-2回答:1

这是我的问题:

if ( ! defined( 'WPINC' ) ) die;
if ( ! defined( 'ABSPATH' ) ) exit;

if ( !class_exists( 'MyPlugin' ) ) {

    class MyPlugin {

        protected $MyPluginTable;
        protected $wpdb;
        protected $MyPluginPerfix = 'MyPlugin_';

        public function __construct() {

            define( $MyPluginPerfix' . _ROOTDIR', plugin_dir_path(__FILE__) );

            register_activation_hook(__FILE__, array($this ,'MyPluginInstall') );
            register_deactivation_hook( __FILE__, array($this ,'MyPluginDeactivation') );

            global $wpdb;
            $this->wpdb = $wpdb;
            $this->MyPluginTable = $this->wpdb->prefix . "MyPluginTable";

        }
}

您会注意到,我正在尝试设置一些常数,以便可以在代码(WordPress插件)中的任何地方重用。

第一个问题是定义的常量将不起作用。

第二个问题是在PHP中定义全局变量的方式,我对数据库的调用方式很好:

$this->NetrackTable

但是我在数据库(作为全局数据库)中定义表的方式太冗长。

我想知道是否有更好的方法来使用和定义PHP中的实体,以便编写更精美的代码。

提前谢谢您

php oop constants global
1个回答
0
投票

您可以在类的__construct方法中设置变量。

© www.soinside.com 2019 - 2024. All rights reserved.