我需要以下格式的一些变量:
$m_01;
$m_02;
$m_03;
.....
.....
.....
$m_12;
变量中的数字是日历的月份。 我可以分别声明12个变量。但是,我想使用循环声明变量。所以我做了类似的事。
for($i = 1; $i <= 12; $i++) {
if($i<10)
$month = '0'.$i;
else
$month = $i;
$m_$i;
}
然而,我收到一些错误: -
解析错误:语法错误,第412行/var/www/html/custom/ci/Dotell_customer/application/controllers/login.php中的意外'$ month'(T_VARIABLE)
我如何克服这个问题?
注意:
$$month creates a variable 01;
有什么方法可以让变量m_01
陷入困境?
P.S。我知道阵列。我只想学习PHP变量变量。
答案 0 :(得分:4)
这不是最好的做法,但仍然只是为了答案:
onEachFeature
最佳做法是创建一个数组。例如:
for($i = 0; $i <= 12; $i++) {
${"m_$i"} = $i;
}
echo $m_1;
echo $m_2;
echo $m_3;
答案 1 :(得分:2)
我认为你正在寻找像
这样的东西$varname = 'm_'.$i; // format the way you need it
$$varname = ...
正如评论中所指出的,它相当于代码味道,而且通常是不必要的。通常,阵列做得更好,即
$m[$i] = ...
答案 2 :(得分:2)
使用PHP变量变量。这也适用于评论
中的建议${"m_$i"}
答案 3 :(得分:0)
与Davids建议使用阵列。
$month = [];
for($i = 1; $i <= 12; $i++)
{
if($i<10)
$month[] = '0'.$i;
else
$month[] = $i;
$month[$i];
}
这里$ var [] = ...语法附加你的数组。 $ month [$ i]访问它。
答案 4 :(得分:0)
通常不建议使用双变量。您应该使用数组来解决您的问题:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="es-list" style="top: 305.483px; left: 191.25px; width: 194px; display: block;">
<li id="from_7" class="" value="7" style="display: block;">Adelaide</li>
<li id="from_1" class="" value="1" style="display: block;">Alexandria</li>
<li id="from_17" class="" value="17" style="display: block;">Antwerp</li>
<li id="from_19" value="19" style="display: block;">Aqaba</li>
</ul>
否则如果你真的想要双重变量那么:
$month = array();
for($i = 1; $i <= 12; $i++)
{
if($i<10)
$month['m_0'.$i] = $i;
else
$month['m_'.$i] = $i;
}
我希望它有所帮助
答案 5 :(得分:-2)
char *linep = 0;
size_t asize = 0;
char *endp;
long c;
while (getline(&linep, &asize, stdin) > 0) {
errno = 0;
c = strtol(linep, &endp, 10);
if (linep == endp || *endp != '\0' || errno) {
puts("?Redo from start");
continue;
}
if (c == 0) break;
do_something_with(c);
}
free(linep);
访问var为
赋值$ month ='m_12';
值for($i = 1; $i <= 12; $i++){
if($i<10)
$month = '0'.$i;
else
$month = $i;
$month = 'm_' . $month;
..........
}