关于变量范围和函数的奇怪行为(PHP)

时间:2014-12-27 17:25:17

标签: php

在尝试在我的服务器上进行开发时,我发现了一些我正在开发的PHP脚本的奇怪行为。看来我无法访问在函数外部声明的变量。

我决定编写一个简单的test.php文件,以确保它不是由我的其他代码引起的,并且是一个完整性检查。

<?php
$name = 'Jamie';
function sayMyName(){
    echo "My name is: " . $name;
}
sayMyName();
?>

上面的代码输出:My name is:我的IDE甚至向我发出警告$name未分配。

我一段时间没有使用过PHP,但我确定这是有效的吗?

这可能与PHP的设置有关,如果是这样,任何想法是什么造成这种情况? - 我在HostGator共享主机软件包上,所以我无法想象默认设置会太模糊。

2 个答案:

答案 0 :(得分:0)

您需要将变量设置为全局变量,以便函数可以访问它。

<?php
$name = 'Jamie';
global $name;
function sayMyName(){
    echo "My name is: " . $name;
}
sayMyName();
?>

或者,您可以将变量传递给函数。

<?php
$name = 'Jamie';
function sayMyName($name){
    echo "My name is: " . $name;
}
sayMyName($name);
?>

答案 1 :(得分:0)

function sayMyName($name){
    echo "My name is: " . $name;
}
sayMyName('Jamie');

在课堂上

class sayMyName
{
public function setName($name) {
return "My name is: ".$name;
}
}
$myname=New sayMyName();
echo $myname->setName('Jamie');