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

Php 函数中的变量未显示在函数外部

Php 函数中的变量未显示在函数外部,php,Php,我在获取函数外的函数中的变量值时遇到问题 例如: function myfunction() { $name = 'myname'; echo $name; } 那我就叫它 if (something) { myfunction(); } 这是在回显$name,但如果我尝试在输入值内回显$name,则不会显示: <input type="text" name="name" value="<?php echo $name ?>" 除非您明确将$nam

我在获取函数外的函数中的变量值时遇到问题

例如:

function myfunction() {
    $name = 'myname';
    echo $name;
}
那我就叫它

if (something) {
    myfunction();
}
这是在回显
$name
,但如果我尝试在输入值内回显
$name
,则不会显示:

<input type="text" name="name" value="<?php echo $name ?>"

除非您明确将
$name
变量定义为全局变量,否则该变量是局部变量:

function myfunction() {
    global $name;
    $name = 'myname';
    echo $name;
}
但这似乎不是一个很好的全局使用在这里。您的意思是返回值并分配它吗?(或者只使用一次?)

了解
变量具有局部作用域。你必须让它全球化。但更好的办法是使用一些模板引擎或实现注册表

这是一个范围问题


就像你在一个封闭的房间里,我们看不到你在做什么,但是如果你打开一扇门,或者放上摄像机,人们可以,或者可以看到有限的东西,或者听到有限的东西。。这也是东西在计算机中的工作原理

您应该阅读php页面

要实现您的愿望,有两种解决方案:

  • 使
    $name
    全局化,或
  • 返回函数中的变量

  • $name
    变量在该函数中是局部变量。所以它只能在函数内部访问。如果希望它在任何地方都可以访问,可以执行以下操作:

    • 在函数外部和函数类型内部声明它:
      global$name
    • 仍在外部声明,但通过引用将其作为函数参数传递:

      函数myFunc(&$name){
      $name=“text”;
      }


    您是否尝试全球化变量。i、 e.定义为全局:全局$name$name='myname';?正是我要写的:—)人们忘记了全球是双向的
    function myfunction() {
        $name = 'myname';
        return $name;
    }
    
    ...
    $name = myfunction();