我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

php里面有一组函数,叫做putenv()getenv()。那么通过getenv()可以获得环境变量,而设置环境变量的途径,可就不仅仅局限于putenv()了。而且如何理解php的环境变量这个说法呢?是不是感觉也挺陌生的?如果是java或者node的话,这个环境变量的说法,就似乎能解释通了。

苏南大叔:如何使用 php 函数 putenv 和 getenv ?env 函数范例大全 - php-env
如何使用 php 函数 putenv 和 getenv ?env 函数范例大全(图8-1)

如果大家认真阅读了苏南大叔的上一篇文章的话,知道可以通过单独的php命令来启动www服务。那么就可以知道,这个时候的phpnode的用法是很相似的。这个时候,就可以通过命令行传递个环境变量参数了。

php获取环境变量值

获取变量值的方法,似乎只有一种。就是下面的这个函数。

echo getenv("<变量名>");

例如:

echo getenv("var1");

那么如何设置这个环境变量值呢?这里,苏南大叔给出了下面两个方案。

方案一:linux或者mac系统通过export设置环境变量

export var1=val1; php -S <域名>:<端口>

这个export命令,只存在于linux或者mac系统中,win系统是没有这个export命令的。

苏南大叔:如何使用 php 函数 putenv 和 getenv ?env 函数范例大全 - export_mac
如何使用 php 函数 putenv 和 getenv ?env 函数范例大全(图8-2)

下面是值得注意的两点:

  • php字样前面,在export语句后面,两者之间有个英文分号;,当然您还可以用&&来替换它。在win下面,如果出现类似语句的话,建议使用&&
  • export是在整个命令行窗口运行期间生效的,命令行窗口中一旦设置了某个值,只要这个窗口还存着,这个值就一直是生效的,并不会因为php的www被ctrl+c了而消失。

方案二:mac(linux)环境,徒手直接设置环境变量

newsn.net:这里是【评论】可见内容

这个方案简单暴力,不拖泥带水。不带有任何的多余字符,自己看图。

苏南大叔:如何使用 php 函数 putenv 和 getenv ?env 函数范例大全 - mac_env
如何使用 php 函数 putenv 和 getenv ?env 函数范例大全(图8-3)

方案三:win环境,cmd使用set设置环境变量

export在win下面不生效,苏南大叔改用了set来做类似设置。

苏南大叔:如何使用 php 函数 putenv 和 getenv ?env 函数范例大全 - export-win
如何使用 php 函数 putenv 和 getenv ?env 函数范例大全(图8-4)

set var1=val1 && php -S <域名>:<端口> -t <root_path>

苏南大叔:如何使用 php 函数 putenv 和 getenv ?env 函数范例大全 - win_set
如何使用 php 函数 putenv 和 getenv ?env 函数范例大全(图8-5)

方案四:win环境,powershell使用$env:设置环境变量

这里需要注意的是:

  • powershell的相关命令里面是两句话,不能用&&进行连接。
  • cmd里面的set&&,对于powershell都是失效的。
  • 变量的值必须用引号引起来,使用中文的引号也是可行的(震惊吧?试试看?)。
$env:var1="aaa"
php -S localhost:9001 -t ./

苏南大叔:如何使用 php 函数 putenv 和 getenv ?env 函数范例大全 - powershell_env
如何使用 php 函数 putenv 和 getenv ?env 函数范例大全(图8-6)

方案五:通用方案,通过putenv()设置环境变量

下面的语句中,苏南大叔通过putenv(),设置了一个环境变量var1,它的值是val1。然后我们就可以通过getenv("var1")来获得这个环境变量值val1了。本方法不分win还是mac,通用。

but,因为这个putenv要写在php代码中,而不是命令行里面,苏南大叔在这里就有些迷糊了,这么写有什么好处?和普通的变量赋值,感觉上是一样一样的嘛。聪明的读者,您说是嘛?

putenv("var1=val1");

下面这个截图,是苏南大叔写的一个实际的应用例子。

苏南大叔:如何使用 php 函数 putenv 和 getenv ?env 函数范例大全 - putenv
如何使用 php 函数 putenv 和 getenv ?env 函数范例大全(图8-7)

方案六:使用流行框架里面的.env文件

这个.env文件,也可以设置类似环境变量。不过并不是php原生支持的功能,都是由第三方包或框架提供的功能。这里不做过多描述,大家知道有这个事情即可。比如,目前较流行的thinkphp5或者laravel等框架里面,都有类似的.env功能。

查看所有的环境变量

打印一下$_ENV即可得到所有的环境变量,会有惊喜哦。

苏南大叔认为:这个操作有越权的嫌疑!获得了很多不该知道的服务器信息!

苏南大叔:如何使用 php 函数 putenv 和 getenv ?env 函数范例大全 - env_all
如何使用 php 函数 putenv 和 getenv ?env 函数范例大全(图8-8)

相关链接

结论

这个export设置环境变量的办法,是官方推荐的方法。当然了,这种应用场景,确实太罕见了。一般人也不会这么使用,所以,大家了解一下就ok了。您说对吧?

更多php相关经验文章,请点击这里查看。

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   php    env