Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.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_Arrays_Variables - Fatal编程技术网

PHP;在单行上操纵多个变量?

PHP;在单行上操纵多个变量?,php,arrays,variables,Php,Arrays,Variables,基本问题真的,我知道我可以用其他一些语言来做这件事,但我不太懂PHP,希望有人能帮我 所以我有以下几点 $holyToT *=100; $coldToT *=100; $fireToT *=100; $poisonToT *=100; $lightningToT *=100; 我想把它浓缩成这样: $holyToT、$coldToT、$fireToT、$Toxintot、$lightningToT*=100 PHP是否有一种内部方式来做类似的事情?没有语法允许您在一条语句中完全做到这一点 你可

基本问题真的,我知道我可以用其他一些语言来做这件事,但我不太懂PHP,希望有人能帮我

所以我有以下几点

$holyToT *=100;
$coldToT *=100;
$fireToT *=100;
$poisonToT *=100;
$lightningToT *=100;
我想把它浓缩成这样:

$holyToT、$coldToT、$fireToT、$Toxintot、$lightningToT*=100


PHP是否有一种内部方式来做类似的事情?

没有语法允许您在一条语句中完全做到这一点

你可以想出这样做的方法(把所有的东西都放在一个数组中),但是结果远不如一组作业那么清晰和有效

我想到了类似的事情,但如果他们发现你这么做,不要说你是从我这里听到的:

extract(array_map(
    function($i) { return $i * 100; },
    compact('holyToT', 'coldToT', 'fireToT' /*, ... */ )
));

没有语法允许您在一条语句中完全执行此操作

你可以想出这样做的方法(把所有的东西都放在一个数组中),但是结果远不如一组作业那么清晰和有效

我想到了类似的事情,但如果他们发现你这么做,不要说你是从我这里听到的:

extract(array_map(
    function($i) { return $i * 100; },
    compact('holyToT', 'coldToT', 'fireToT' /*, ... */ )
));

我同意其他人的观点,但如果你真的想把它放在一行中,你可以这样做:

list($holyToT, $coldToT, $fireToT, $poisonToT, $lightningToT) = array_map(function($x) { return $x*100;}, array($holyToT, $coldToT, $fireToT, $poisonToT, $lightningToT));

我同意其他人的观点,但如果你真的想把它放在一行中,你可以这样做:

list($holyToT, $coldToT, $fireToT, $poisonToT, $lightningToT) = array_map(function($x) { return $x*100;}, array($holyToT, $coldToT, $fireToT, $poisonToT, $lightningToT));

有ni内置功能。根据PHP版本的不同,可以将数组和lambda函数传递给自定义函数

function performOnAll(array $a, $fct) { 
    foreach($a as $v) $fct(&$a); 
} 

performOnAll(array($a, $b, ...), function(&$a) { $a *= 100; });

基本上就是这样(没有语法检查)

有ni内置功能。根据PHP版本的不同,可以将数组和lambda函数传递给自定义函数

function performOnAll(array $a, $fct) { 
    foreach($a as $v) $fct(&$a); 
} 

performOnAll(array($a, $b, ...), function(&$a) { $a *= 100; });

基本上就是这样(没有语法检查)

不,没有。您可以级联普通的赋值,但不能与运算符级联赋值。您可以编写一个小的代码片段,以减少代码行数,但代价是复杂性(可能是可维护性)。不,它不会。你可以级联普通的赋值,但不能与运算符一起级联赋值。你可以编写一个小的代码片段,减少代码行数,但代价是复杂性(可能是可维护性)是的,我很害怕。如果这是唯一的其他选择,我想我会坚持使用这个小集合的代码块。是的,我很害怕。如果这是唯一的其他选择,我想我会坚持使用这个小集合的代码块。