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();