入门 - 配置文件 ¶
作者:KK
发表日期:2016.8.17
要点速读 ¶
phpinfo函数输出的结果中,在前面一段内容就能知道配置文件在哪里,熟悉后自己直接找就是了
配置文件支持
;
号作为注释符号配置选项的写法都是
配置名称 = 配置值
PHP平时运行代码其实是受到配置文件的控制的,所以我们有必要初步认识一下配置文件
从代码怎么写章节里底下的phpinfo函数输出信息中可以看到配置文件的路径
配置文件一般位于php目录下,名叫php.ini
打开配置文件,内容大概这样的:
[PHP]
;;;;;;;;;;;;;;;;;;;
; About php.ini ;
;;;;;;;;;;;;;;;;;;;
;下面是一些介绍
; PHP's initialization file, generally called php.ini, is responsible for
; configuring many of the aspects of PHP's behavior.
; PHP attempts to find and load this configuration from a number of locations.
; The following is a summary of its search order:
; 1. SAPI module specific location.
; 2. The PHPRC environment variable. (As of PHP 5.2.0)
; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0)
; 4. Current working directory (except CLI)
; 5. The web server's directory (for SAPI modules), or directory of PHP
; (otherwise in Windows)
; 6. The directory from the --with-config-file-path compile time option, or the
; Windows directory (C:\windows or C:\winnt)
; See the PHP docs for more specific information.
; http://php.net/configuration.file
;...
;....
;.....
;......
;.......更多中间内容忽略吧
;;;;;;;;;;;;;;;;;;;;
; php.ini Options ;
;;;;;;;;;;;;;;;;;;;;
; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini"
;user_ini.filename = ".user.ini"
; To disable this feature set this option to empty value
;user_ini.filename =
; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes)
;user_ini.cache_ttl = 300
;;;;;;;;;;;;;;;;;;;;
; Language Options ;
;;;;;;;;;;;;;;;;;;;;
; Enable the PHP scripting language engine under Apache.
; http://php.net/engine
engine = On
; This directive determines whether or not PHP will recognize code between
; <? and ?> tags as PHP source which should be processed as such. It is
; generally recommended that <?php and ?> should be used and that this feature
; should be disabled, as enabling it may result in issues when generating XML
; documents, however this remains supported for backward compatibility reasons.
; Note that this directive does not control the <?= shorthand tag, which can be
; used regardless of this directive.
; Default Value: On
; Development Value: Off
; Production Value: Off
; http://php.net/short-open-tag
short_open_tag = Off
;.......更多配置
配置文件内容很多,我们也不用全部记下来,需要改哪个就找哪个是了
其中;
号是注释符号,所注释的内容大部分都在讲解下面的一个个配置的意思,要注意什么,必要时还会说明有哪些配置值
而其它正式的配置内容通常都是配置名称 = 配置值
,比如error_reporting = E_ALL
,error_reporting就是配置的名称,用于控制“发生了哪个级别以下的错误就报错”,而E_ALL
这就是配置的值
尝试修改一下配置 ¶
咱们将error_reporting的配置值修改成E_WARNING
,保存配置文件之后要重启服务器,在phpStudy里的话就直接点主界面的重启即可
然后运行如下代码时不会报错:
$a = [];
echo $a[2];
以上代码中$a是一个空数组,然后输出数组下标为2的元素,当然是没有值了,因为数组就是空的嘛
再将error_reporting的配置值修改成E_ALL
,重启服务器再运行代码就会出现如下报错:
Notice: Undefined offset: 2 in D:\phpStudy\WWW\index.php on line 3
用ini_set函数修改配置 ¶
配置文件中的error_reporting选项控制报错级别,也有对应的error_reporting函数来在运行的时候动态设置报错级别
其实我们还可以通过ini_set
函数动态地修改配置来实现控制报错级别,比如ini_set('error_reporting', E_ALL);
其实php.ini
配置里有很多configName = value
的配置项,都可以用ini_set函数来修改
总结 ¶
好了咱们已经初始体会到配置文件如何控制PHP的运行的了,它不止是控制报错不报错,还控制一些内存大小,接收数据的方式,禁止使用的函数等
本节只是初步介绍一下配置文件,未来将大部分基础讲完后会有专门的章节讲常用配置