Heim  >  Artikel  >  Backend-Entwicklung  >  Was tun, wenn globales PHP nicht funktioniert?

Was tun, wenn globales PHP nicht funktioniert?

藏色散人
藏色散人Original
2021-03-10 10:14:111553Durchsuche

Lösungen dafür, dass PHP Global nicht funktioniert: 1. Reduzieren Sie mehrstufige Include-Aufrufe und versuchen Sie, Include nicht innerhalb von Funktionen zu verwenden. 2. Deklarieren Sie „$site_name“ als globale Variable auf der entsprechenden Seite.

Was tun, wenn globales PHP nicht funktioniert?

Die Betriebsumgebung dieses Artikels: Windows 7-System, PHP8, Dell G3-Computer.

php globale Variable ist ungültig?

Für PHP-Anfänger verwenden Sie global, finden Sie das möglicherweise innerhalb der Funktion globalEine Variable außerhalb der Funktion, aber in einigen Fällen kann die Variable nicht korrekt ausgegeben werden (z. B. globalvariable ist ungültig). Schauen wir uns ein einfaches und allgemeines Beispiel an. global关键字时,可能会发现,在函数内global一个函数外的变量,在某些情况下却无法正确输出该变量(即global变量无效)。下面我们来看一个简单而常见的例子。

在这里,我们有a.php和b.php两个页面。

b.php页面代码如下:

 <?php
 $site_name = &#39;CodePlayer&#39;;
 function sayHi(){
     global $site_name;    
     echo "Hello! Welcome to $site_name !";
 }
 ?>

a.php页面代码如下:

 <?php
 function include_view_page(){
     include &#39;b.php&#39;;    
     sayHi();                    
}
include_view_page();
?>

上面的例子非常简单,我们希望当我们访问a.php页面,能够正确显示出欢迎语句。不过,遗憾的是,当我们使用浏览器访问a.php页面却发现输出结果如下:

Hello! Welcome to !

也就是说,我们在函数include_view_page()中调用sayHi()函数时,b.php页面sayHi()函数中global$site_name

Hier haben wir zwei Seiten a.php und b.php. Der 🎜🎜b.php-Seitencode lautet wie folgt: 🎜
//b.php
<?php
global $site_name;
$site_name = &#39;CodePlayer&#39;;

function sayHi(){
    global $site_name;
    echo "Hello! Welcome to $site_name !";
}
?>
🎜Der a.php-Seitencode lautet wie folgt:
🎜rrreee🎜include_view_page() wird aufgerufen in <code style="margin:0px 3px; border:1px solid rgb(225,225,232); Vertical-Align:Baseline; Font-Familie:Consolas,Monaco,Menlo,宋体; Hintergrund:RGB(247,247,249) <code style=" margin: padding:1px border:1px solid rgb outline:0px vertical-align:baseline font-family:consolas color:rgb hintergrund:rgb>sayHi() Funktion $site_name wurde nicht richtig erkannt und wurde wirksam. Was ist los? 🎜

实际上,当我们在函数include_view_page()include b.php页面时,b.php页面的变量$site_name就相当于存放在include_view_page()函数内的作用域中。众所周知,在函数内global一个变量实际上是在函数内建立一个对页面全局变量的引用。而在我们的例子中,这个$site_name变量对于a.php而言,它只是include_view_page()函数内的局部变量,因此无法global该变量,我们进行相关调用时自然无法获取到正确的变量和变量值。

在php中,我们尤其需要注意类似上述在函数内include某个页面,导致该页面中变量的作用域发生改变的问题。为了避免这种情况,我们应该尽量减少多层次的include调用,也尽量不要在函数内使用include。此外,我们还可以在b.php的页面中将$site_name进行全局变量形式的声明。

//b.php
<?php
global $site_name;
$site_name = &#39;CodePlayer&#39;;

function sayHi(){
    global $site_name;
    echo "Hello! Welcome to $site_name !";
}
?>

【推荐学习:《PHP视频教程》】

Das obige ist der detaillierte Inhalt vonWas tun, wenn globales PHP nicht funktioniert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn