gpt4 book ai didi

PHP非法字符串偏移错误

转载 作者:行者123 更新时间:2023-12-02 08:33:05 24 4
gpt4 key购买 nike

我有这段代码,但不知道为什么会出错。

if( ! in_array($repeatType, ['monthly', 'weekly', 'daily'])){
// do somehting
}
$monthly = ['two_years' => 26, 'offset_const' => 4, 'add_unite' => 'weeks'];
$weekly = ['two_years' => 52*2, 'offset_const' => 1, 'add_unite' => 'weeks'];
$daily = array('two_years' => 365*2, 'offset_const' => 1, 'add_unite' => 'days');

for ($i=0; $i < $$repeatType['two_years']; $i++) { #<--- here I get the error

// ..... // rest of the code

这太奇怪了,因为我检查了 var_dump($$repeatType) 输出,它看起来很好:

array(3){["two_years"]=>int(730)["offset_const"]=>int(1)["add_unite"]=>string(4)"days"}

最佳答案

这是语法限制。 PHP 正在尝试将数组索引运算符绑定(bind)到 $repeatType (这是一个字符串),并且关联键在字符串中无效,从而导致您的问题。

你需要明确指定你的变量从哪里开始,像这样开始:

for ($i=0; $i < ${$repeatType}['two_years']; $i++) {}

解决方法是将它分配给一个临时变量,如下所示:

$selectedRepeatType = $$repeatType;
for ($i=0; $i < $selectedRepeatType['two_years']; $i++) {}

关于PHP非法字符串偏移错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24731486/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com