php4-在这种情况下我应该使用全局变量吗?

php4-在这种情况下我应该使用全局变量吗?,php,Php,我认为这很愚蠢,你能告诉我一个好方法吗?将$words声明为类中的静态变量: <?php global $words; class A { function say() { global $words; $words = 'man'; A::hello(); A::bye(); echo $words;

我认为这很愚蠢,你能告诉我一个好方法吗?

$words
声明为类中的静态变量:

<?php
    global $words;

    class A {

        function say()
        {
            global $words;
            $words = 'man';
            A::hello();
            A::bye();

            echo $words;
        }

        function hello(){
            global $words;
            $words .= 'hello';
        }

        function bye(){
            global $words;
            $words .= 'bye';
        }

    }
    A::say();
?>
PHP4代码(与PHP5兼容)

一般来说。依赖globals将很快给您的应用程序带来副作用,破坏封装,并使您的API对其依赖性撒谎。因为它们将调用类与静态类紧密耦合。这使得维护和测试变得比需要的更痛苦(对于globals也是如此)


另请参见

您不应该使用不再受支持的php版本,这很危险。从手册“支持PHP 4已经停止自2007年至12月31日。请考虑升级到PHP 5。”@达冈:我知道,但我必须关心PHP4:Dwhat的价值支持PHP4?最好支持php3。@Chameron,然后更换老板。@Chameron:teresko是(一种)对的:如果你的老板不知道他在说什么,你也有责任告诉他,他错了(换句话说;)。当某个问题变得非常糟糕时,因为您使用的是过时的环境,可能要由您来修复它(我说的“糟糕”是指“糟糕”)。是的。请参阅:请注意,PHP4不支持访问修饰符。此外,您可能需要将引用从
$words
命名为
self::$words
。php4.4.6:解析错误:解析错误,意外的T_静态,期望T_OLD_函数或T_函数或T_VAR或'}谢谢,我已经改变了使用类的方式
class A {
    static $words;

    static function say() {
        self::$words = 'man';
        A::hello();
        A::bye();

        echo self::$words;
    }

    static function hello() {
        self::$words .= 'hello';
    }

    static function bye() {
        self::$words .= 'bye';
    }
}

A::say();
class A {

    var $words;

    function A($words) {
        $this->words = $words;
    }

    function say() {
        $this->words = 'man';
        $this->hello();
        $this->bye();
        return $this->words;
    }

    function hello() {
        $this->words .= 'hello';
    }

    function bye() {
        $this->words .= 'bye';
    }
}

$a = new A($words);
echo $a->say();