2013-03-18 92 views
0

我试图做一个网站的组织设置时将未初始化的,但我已经遇到了一个问题,在类文件,我用$website['website_name'] = 'Delusion Servers';然而,当我把里面的变量功能,它说它是未初始化的。变量似乎定义

<?php 

/* 
* Delusion Servers 
* Website access at (delusionservers.com). 
* Developed, designed and managed by Lewes B. 
* PAGE: WEBSITE.CLASS.PHP 
*/ 

$website['website_name'] = 'Delusion Servers'; 

class website { 

    function killPage($content){ 
     die(" 

      <h1>" . $website['website_name'] ."encountered an error</h1> 

      <br /><br />" . $content . " 

      "); 
    } 
} 

$website = new Website; 
?> 

怎么了?

回答

-1

解决方案1:类常量

class Settings { 
    const WEBSITE_NAME = 'Delusion Servers'; 
} 

class website { 

    function killPage($content){ 
     die("<h1>" . Settings::WEBSITE_NAME ." encountered an error</h1> 
      <br /><br />" . $content); 
    } 
} 

解决方案2:全局常量

define("WEBSITE_NAME","Delusion Servers"); 
... 
class website { 

    function killPage($content){ 
     die("<h1>" . WEBSITE_NAME ." encountered an error</h1> 
      <br /><br />" . $content); 
    } 
} 

解决方案3:类属性

class website { 
    private $websiteName = "Delusion Servers"; 

    function killPage($content){ 
     die("<h1>" . $this->websiteName ." encountered an error</h1> 
      <br /><br />" . $content); 
    } 
} 
+0

嗯,为什么要这些? – Neal 2013-03-18 17:24:52

3

你在类中的功能是在不同的范围。

尝试这种情况:

class website { 

    function killPage($content){ 
     die(" 

      <h1>" . $this->website_name ."encountered an error</h1> 

      <br /><br />" . $content . " 

      "); 
    } 
} 

$website = new Website; 
$website->website_name = 'Delusion Servers'; 
+0

你能更解释一下,因为我完全糊涂了? – Lewes 2013-03-18 17:19:50

+1

@Lewes看到我的更新。 – Neal 2013-03-18 17:19:59

1
class website { 

    public $website = array(); 

    public function __construct() { 
     $this->website['website_name'] = 'Delusion Servers'; 
    } 

    function killPage($content){ 
     die(" 

      <h1>" . $this->website['website_name'] ."encountered an error</h1> 

      <br /><br />" . $content . " 

      "); 
    } 
} 
+0

方法来设置WEBSITE_NAME即__contruct()将是很好过 – Waygood 2013-03-18 17:22:05

+0

做...感谢您的建议.. – 2013-03-18 17:24:51

+0

'$网站=新的网站(“妄想服务器”);'会更好!附:注意__W__ ebsite class – Waygood 2013-03-18 17:27:30