我是程序员的初学者,谁能向我描述php功能如何工作? 我搜索了任何教程,但我仍然感到困惑..
为什么这个功能不起作用?
<?php
$name = "Maria";
$gender = "Female";
$country = "Thailand";
function profile(){
echo $name . "<br>";
echo $gender . "<br>";
echo $country . "<br>";
}
profile()
?>
或者像这样:
<?php
function data(){
$name = "Maria";
$gender = "Female";
$country = "Thailand";
}
function profile(){
echo $name . "<br>";
echo $gender . "<br>";
echo $country . "<br>";
}
data();
profile()
?>
或者像这样:
<?php
function data(){
$name = "Maria";
$gender = "Female";
$country = "Thailand";
}
function profile(){
data();
echo $name . "<br>";
echo $gender . "<br>";
echo $country . "<br>";
}
profile()
?>
如何在php函数中包含变量? 谢谢你的帮助先生......
答案 0 :(得分:2)
尝试以下方法。您需要将每个变量作为参数
<?php
$name = "Maria";
$gender = "Female";
$country = "Thailand";
function profile($name, $gender, $country){
echo $name . "<br>";
echo $gender . "<br>";
echo $country . "<br>";
}
echo profile($name, $gender, $county);
?>
您也可以在函数本身中声明一个变量。
<?php
function profile() {
$name = "Maria";
$gender = "Female";
$country = "Thailand";
echo $name . "<br>";
echo $gender . "<br>";
echo $country . "<br>";
}
?>
这方面的缺点是变量是硬编码的,不能像上面的函数那样改变。
如果你想要调用很多变量,可以使用数组。
$data = array('name' => 'Test', 'age' => 18, 'email' => 'test@test.com');
function profile($data) {
foreach($data as $field => $value) {
echo 'Field: '.$field.' has a value of: '.$value.'<br>';
}
}
echo profile($data);
// This should return:
// Field: name has a value of Test
// Field: age has a value of 18
// Field: email has a value of test@test.com
您还可以点击以下链接:
答案 1 :(得分:2)
如果您对编程感兴趣并希望了解有关如何编码的更多信息,我建议您阅读有关该主题的教程。只需search了解它们的工作原理,如何传递/返回参数,一旦您感觉足够舒适,就可以继续使用更高级的功能。
在您的示例中,您尝试访问仅在该功能范围内可访问的private
变量$name
,$gender
和$country
。
要访问global
变量,您需要将它们作为参数传递给函数:
function profile($name,$gender,$country) {
echo $name . "<br>";
echo $gender . "<br>";
echo $country . "<br>";
}
或在函数中使用global
关键字:
function profile(){
global $name,$gender,$country;
echo $name . "<br>";
echo $gender . "<br>";
echo $country . "<br>";
}
答案 2 :(得分:1)
这完全是关于php中变量的范围。看看http://php.net/manual/en/language.variables.scope.php。
例如
$var = 'foo';
// not so good example
function bar() {
global $var;
echo $var;
}
bar(); // echos 'foo';
// better example
function bla($parameter) {
echo $parameter;
}
bla( $var ); // echos 'foo';
你必须了解php的范围。
答案 3 :(得分:0)
它不起作用的原因是$name
,$gender
和$country
变量具有全局范围。在函数中,除非明确声明全局变量,否则无法访问全局变量:
<?php
$name = "Maria";
$gender = "Female";
$country = "Thailand";
function profile(){
global $name, $gender, $country;
echo $name . "<br>";
echo $gender . "<br>";
echo $country . "<br>";
}
profile()
?>
话虽如此,全局变量通常不是一种干净的方法,应该避免。将变量作为参数传递给函数会更好:
<?php
$name = "Maria";
$gender = "Female";
$country = "Thailand";
function profile($name, $gender, $country) {
echo $name . "<br>";
echo $gender . "<br>";
echo $country . "<br>";
}
profile($name, $gender, $country)
?>
这样,$name
,$gender
和$country
变量就成了函数的本地变量。
变量的范围比我在这里描述的要多得多,但你可以阅读它in the php documentation