検索
ホームページphp教程php手册概论为什么PHP全局变量不能生效
概论为什么PHP全局变量不能生效Jun 13, 2016 am 11:10 AM
phpできないなぜ全体的な状況変数存在する初心者時間発効する

对于一个新手在实际操作

但在实际操作时,会接连碰到几次全局变量无效的郁闷的事,下面就重点看一下PHP全局变量不能生效的原因及解决办法。

1.PHP全局变量不能生效错误重现

问题出现在用我的简易框架时,在view中使用原来第三方定义好的函数时(此函数比较独立),下面模拟一下:

t1.php

  1.  ?  
  2. run(); //执行  
  3. function run(){  
  4. include 'func.php';  
  5. showGlobal();  
  6. }  
  7. ?> 

func.php1

<ol class="dp-xml">
<li class="alt"><span><span class="tag"><span> ?  </span></span></span></li>
<li>
<span>$</span><span class="attribute">vars</span><span> = </span><span class="attribute-value">'I am global!'</span><span>;  </span>
</li>
<li class="alt"><span>function showGlobal(){  </span></li>
<li><span>global $vars;  </span></li>
<li class="alt"><span>print('我使用全局变量:'.$vars);  </span></li>
<li><span>}  </span></li>
<li class="alt">
<span class="tag">?></span><span> </span>
</li>
</ol>

很简单的两个文件(第一次发现问题时,远比这复杂,在一层层排错后,得出最少化的问题重现环境),func.php是定义好的第三方函数,该函数使用了一些全局变量,如果这时把这两个文件放在一起,执行一下t1.php,会发现showGlobal里的$vars是显示不出来的,global失效了?

2.PHP全局变量不能生效错误原因

搜索后发现,php.net上很早就有人提出过,也有人给出了解释:
原来,在t1.php的run函数中include func.php时,func.php中的变量$vars的作用域只是在run之内,而在showGlobal中使用global声明的$vars是要求属于t1.php的不是run函数的,所以为空)

3.PHP全局变量不能生效解决方法

知道原因后,解决就很简单,可以把include 从run中移出来,这样,func.php中的$vars就属于t1.php了;也可以在run里用global声明一下$vars,这样也可以把原来属于run的$vars声明为全局(属于t1.php);

虽然问题可以简决,但用起来还是很不爽, 因为在我的phpec框架中,include的情况比较普遍,不可能把view中按需include的移到外层去,使用global的话,我在使用第三方函数时,又不会也不想去了解它用了什么全局变量,而且,层次结构一多,就….

PHP全局变量不能生效的原因总结:

1)尽量减少多级和函数中include文件.

2)尽量不用全局变量


声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
为什么wallpaper engine一直在更新为什么wallpaper engine一直在更新Mar 15, 2024 pm 07:10 PM

用户在使用wallpaperengine时可以下载各种不同类型的壁纸,有很多用户不知道为什么wallpaperengine一直在更新,它是一款创意制作软件,软件中需要时刻更新最新的工具以及素材。为什么wallpaperengine一直在更新1、WallpaperEngine每次使用时都要进行更新,这是正常现象。2、WallpaperEngine是一款创意制作软件,软件中需要时刻更新最新的工具以及素材。3、每次使用都要更新,但更新文件包并不大,更新速度很快。4、订阅的壁纸只要有一个有更新他就跟着更

SUPRA币2025年会暴涨吗SUPRA币2025年会暴涨吗Dec 09, 2024 pm 12:14 PM

这篇分析报告探讨了 SUPRA 币在 2025 年的潜在增长潜力,识别了影响其价值的潜在市场因素、技术发展和监管变化。该报告评估了 OKX 生态系统的扩展、DeFi 行业的增长、机构投资、技术创新和监管环境改善等因素,这些因素可能会在未来几年推动 SUPRA 币的上涨。报告还考虑了潜在的下跌因素,包括市场竞争、监管风险、技术问题、市场情绪和经济衰退。

为什么笔记本电脑能够使用充电宝作为电源?为什么笔记本电脑能够使用充电宝作为电源?Jan 15, 2024 pm 06:54 PM

笔记本可以用充电宝供电吗由于笔记本电脑的电池电压、充电电流以及充电接口与充电宝不一致,因此无法使用充电宝给笔记本电脑充电。这是由于技术规格的差异导致的。充电宝通常的输出电压是5V或者5.2V。而笔记本电脑的充电电压要求至少为13.5V,有些甚至需要更高的电压,如19.5V或者20V,才能正常充电。所以,如果想要用充电宝给笔记本电脑充电,需要确保充电宝能够提供足够的电压。当笔记本电脑充电时,通常需要3A以上的电流。然而,充电宝的标称电流只有2.1A。现在市面上的笔记本电脑都使用圆型接口,不同厂家的

比特币发行至今价格一览 历年最高和最低价分别是多少比特币发行至今价格一览 历年最高和最低价分别是多少Dec 14, 2024 am 06:17 AM

比特币自 2009 年发行以来经历了剧烈的价格波动,从 2011 年的 2.01 美元低点飙升至 2021 年的 68,000 美元高点。价格波动受供需关系、监管政策、经济状况和技术创新等因素影响。例如,2017 年,由于需求激增,比特币价格飙升至近 20,000 美元,而 2022 年,美联储收紧货币政策导致价格大幅下跌。

币圈跨链桥重要么 简单通俗解释什么是跨连桥币圈跨链桥重要么 简单通俗解释什么是跨连桥Dec 19, 2024 pm 02:45 PM

币圈犹如独立岛屿组成的世界,每个区块链(岛屿)拥有独特货币和规则。跨链桥就像一座连接岛屿的桥梁,让用户可以安全地跨链转移代币。它提升了互操作性,促进了价值流动,拓展了应用场景,甚至可以提升效率。不过,跨链桥也存在安全、中心化和技术复杂性等风险,选择信誉良好的跨链桥至关重要。通过跨链桥,币圈得以构建一个更加互联互通的区块链新世界。

私募币都要锁仓吗?为什么?私募币都要锁仓吗?为什么?Jun 25, 2024 pm 07:57 PM

锁仓是一种常见的机制,私募币锁仓也是市场上常见的一个策略,指将一定数量的代币锁定在特定的钱包地址或智能合约中,使其在一段时间内无法自由交易或转移。作为投资者可能会好奇是不是市场上的私募币都要锁仓吗?通常来说是要锁仓的,有的投资者就会疑惑为什么私募币都要锁仓?就资料分析来看,锁仓的目的通常是为了促进项目的长期发展,增加代币的价值,同时显示项目方的承诺和信心。接下来小编为大家详细说说这个问题。私募币都要锁仓吗?私募币都要锁仓,私募币锁仓就是投资者在购买私募代币后,需要在一定时期内不得出售或转移这些代

ai用混合工具有锯齿ai用混合工具有锯齿Nov 28, 2024 pm 08:24 PM

AI混合工具边缘锯齿的原因包括:低图像分辨率、小羽化半径、锋利边缘、算法限制、抗锯齿设置、混合模式和图像噪点。

BTC币上线了哪些交易所_BTC币在哪些交易所上架了BTC币上线了哪些交易所_BTC币在哪些交易所上架了Jan 10, 2025 pm 12:41 PM

本文介绍了 BTC 币上线的知名交易所,并提供了详细的分步指南,指导读者如何购买和交易 BTC 币。列出的交易所包括 OKX、币安、火币、Coinbase 和 Kraken,每家交易所都提供了独特的平台功能。指南涵盖账户创建、入金、购买 BTC 币和安全存储等关键步骤。本文还讨论了选择交易所的因素,以及确保 BTC 币安全性的最佳实践。通过遵循本文中的说明,读者可以轻松开始使用 BTC 币的交易和投资。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン