为什么赢了';shuffle函数在PHP类中不起作用吗?
为什么它不洗牌数组,让我每次都得到一个随机结果为什么赢了';shuffle函数在PHP类中不起作用吗?,php,oop,function,shuffle,Php,Oop,Function,Shuffle,为什么它不洗牌数组,让我每次都得到一个随机结果 class greeting { public $greet = array('hi','hello'); shuffle($greet); } $hi = new greeting; echo $hi->greet[1]; 我的代码有什么问题吗?任何计算都不能在方法外、类内执行 class greeting { public $greet = array('hi','hello'); function __construct(
class greeting {
public $greet = array('hi','hello');
shuffle($greet);
}
$hi = new greeting;
echo $hi->greet[1];
我的代码有什么问题吗?任何计算都不能在方法外、类内执行
class greeting {
public $greet = array('hi','hello');
function __construct()
{
shuffle($this->greet);
}
}
$hi = new greeting;
echo $hi->greet[1];
任何计算都不能在方法外部、类内部执行
class greeting {
public $greet = array('hi','hello');
function __construct()
{
shuffle($this->greet);
}
}
$hi = new greeting;
echo $hi->greet[1];
如果您更改它,使洗牌在构造函数中,它应该可以正常工作
class greeting {
public $greet = array('hi','hello');
function __construct(){
shuffle($this->greet);
}
}
如果您更改它,使洗牌在构造函数中,它应该可以正常工作
class greeting {
public $greet = array('hi','hello');
function __construct(){
shuffle($this->greet);
}
}
在类块中,您只能定义常量、属性(都具有固定值)和方法。您不能将代码放在该块中,代码只能放在方法(也称为函数)中。在类块中,您只能定义常量、属性(都具有固定值)和方法。您不能将代码放入该块,代码只能放入方法(又名函数)中。还要注意的是,即使放入构造函数中,代码看起来也不像是在洗牌,但它确实是。这只是因为数组中只有2个项,它们被重新排列成相同的原始顺序。感谢您提供的解决方案,一个解释将帮助我更好地理解为什么这样做。@在类中执行的Matthew代码必须驻留在一个方法中
\u construct
是创建对象时调用的方法的名称。要了解更多信息,我建议查看关于OOP的PHP手册部分:)还要注意,它可能看起来仍然不像是在洗牌,即使在放入构造函数之后也是如此,但它确实是。这只是因为数组中只有2个项,它们被重新排列成相同的原始顺序。感谢您提供的解决方案,一个解释将帮助我更好地理解为什么这样做。@在类中执行的Matthew代码必须驻留在一个方法中\u construct
是创建对象时调用的方法的名称。要了解更多信息,我建议查看关于OOP的PHP手册部分:)为什么不能将代码放在该块中?谢谢你澄清这一点。因为类定义不应该运行代码,它的任务是定义它的组件。代码是在方法中运行的,如果您需要在创建对象时运行一些代码,请按照@laurencek的建议将其放入构造函数中。为什么不能将代码放入该块中?谢谢你澄清这一点。因为类定义不应该运行代码,它的任务是定义它的组件。代码在方法中运行,如果您需要在创建对象时运行一些代码,请按照@laurencek的建议将其放入构造函数中。