您可以使用$_GLOBALS
,但it`sa「不好的做法「。所以,
1:使用return
:
<?php
function getName(){
$name = 'Smith';
return $name;
}
function sayMyName(){
$name = getName();
echo $name;
}
sayMyName();
?>
表演:
Smith
2:使用references
:
<?php
function getName(&$name){
$name = 'Smith';
}
function sayMyName(){
getName($name);
echo $name;
}
sayMyName();
?>
表演:
Smith
3:返回array
多個變量:
<?php
function getName(){
$surname = 'Smith';
$name = 'John';
return array($surname, $name);
}
function sayMyName(){
list($surname, $name) = getName();
echo $name, ' ', $surname;
}
sayMyName();
?>
小號怎麼樣了:
John Smith
4.返回定製object
多個變量:
<?php
function getName(){
$surname = 'Smith';
$name = 'John';
$buffer = new stdClass();
$buffer->name = $name;
$buffer->surname = $surname;
return $buffer;
}
function sayMyName(){
$obj = getName();
echo $obj->name, ' ', $obj->surname;
}
sayMyName();
?>
表演:
John Smith
5。使用anonymous function
與use
聲明和references
:
<?php
function sayMyName(){
$surname = $name = 'Unknown';
$temp = function() use (&$name, &$surname){
$surname = 'Smith';
$name = 'John';
};
$temp();
echo $name, ' ', $surname;
}
sayMyName();
?>
表演:
John Smith
如果你需要以這樣的方式來訪問一個變量,最有可能的,你的設計是有缺陷的。如果確實存在這樣的需求,可以考慮使用參考參數從函數返回該變量或(更糟的解決方案)。 –
你爲什麼不用面向類的工作對象? – silkfire
Fudging hell,真的很難看出這個人很可能仍在學習PHP的工作原理嗎?不要用設計和麪向對象的東西給他洗澡 - 你不會留下任何印象或幫助任何人。 –