Скажем, у меня есть дочерняя функция.
function hello {
$x= 1
$y = 2;
}
function outerFunction {
hello
$z = $x + $y
}
Можно ли это как-то сделать?
@SantiagoSquarzon Спасибо, проблема решена!
Также можно установить область действия переменных, но предложение Санти - это то, как я бы тоже согласился.
@AbrahamZinala: Можешь показать, как?
поэтому внутри вашей функции вы должны установить область действия переменных: $script:x = 1
. Затем, когда вы вызываете hello
, вы загружаете $x
в область сценарий, делая ее доступной для вас.
Вы можете использовать Оператор точечного поиска .
, чтобы перенести переменные, определенные в области действия функции hello
, в область действия функции outerFunction
:
function hello {
$x = 1; $y = 2
}
function outerFunction {
. hello
$x + $y
}
outerFunction # => 3
Вы также можете рассмотреть другую альтернативу в зависимости от вашего варианта использования, когда оператор не участвует. Например:
function hello {
1, 2
}
function outerFunction {
$x, $y = hello
$x + $y
}
outerFunction
Да, вам просто нужна точка перед вызовом функции:
. hello