Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么将此数组设置为类时会出现语法错误?_Php - Fatal编程技术网

Php 为什么将此数组设置为类时会出现语法错误?

Php 为什么将此数组设置为类时会出现语法错误?,php,Php,我得到一个语法错误,但我没有;我不明白为什么,这是我的代码: class VerifyEmail { private $ip_pool = array("167.114.48.81","167.114.48.82"....); private $ip_to_use = $this->ip_pool[array_rand($this->ip_pool)]; //ERROR HERE ..... 我也试过: private $ip_to_use

我得到一个语法错误,但我没有;我不明白为什么,这是我的代码:

class VerifyEmail {

     private $ip_pool = array("167.114.48.81","167.114.48.82"....);
     private $ip_to_use = $this->ip_pool[array_rand($this->ip_pool)]; //ERROR HERE
     .....
我也试过:

     private $ip_to_use = $ip_pool[array_rand($ip_pool)];
没有运气

我错过什么了吗?或者在设置变量时不能对私有变量进行数组rand


谢谢

您当前正试图将数组作为数组本身的索引来访问

考虑到您只是试图将
$ip\u池中的一个字符串分配给
$ip\u-to-use
,您只需要
$ip\u-to-use=array\u-rand($this->ip\u池)


希望这有帮助!:)

我在我的IDE中得到了关于该行的以下通知

不允许将表达式作为字段默认值

我只能建议将rand调用移到
\uu construct()
方法中

class VerifyEmail {

  private $ip_pool = array( "167.114.48.81", "167.114.48.82");
  private $ip_to_use;

  public function __construct() {
    $this->ip_to_use = $this->ip_pool[ array_rand( $this->ip_pool ) ];
  }

}

var_dump( new VerifyEmail() );

我认为
array\u rand
有2个参数,@LongKim第二个参数是可选的,不是这样。试试这个私有的$ip\u to\u use=$this->ip\u pool[array\u rand($this->ip\u pool,1)];你的PHP版本是什么?定义默认值时使用
$this
感觉不正确。此逻辑可能更适合于构造函数。然后将其用作$ip_to_使用[0]获取第一个元素?顺便说一句,private$ip\u to\u use=array\u rand($this->ip\u pool);正在标记语法错误。您只需将其与
$ip\u一起使用即可
array_rand()
不带第二个参数,只返回数组中的一个随机元素。您可以使用可选的次要
int
参数指定要返回多少个元素(因此
array\u rand($this->ip\u pool,2)
将返回两个随机ip地址):
private$ip\u to\u use=array\u rand($this->ip\u pool)也显示语法错误。
class VerifyEmail {

  private $ip_pool = array( "167.114.48.81", "167.114.48.82");
  private $ip_to_use;

  public function __construct() {
    $this->ip_to_use = $this->ip_pool[ array_rand( $this->ip_pool ) ];
  }

}

var_dump( new VerifyEmail() );