<em id="1rarx"><ins id="1rarx"></ins></em><sup id="1rarx"></sup>

<progress id="1rarx"><tr id="1rarx"></tr></progress>
<sup id="1rarx"><menu id="1rarx"></menu></sup>
<menuitem id="1rarx"></menuitem><optgroup id="1rarx"><small id="1rarx"><sub id="1rarx"></sub></small></optgroup>

    <sup id="1rarx"><menu id="1rarx"></menu></sup>
    <div id="1rarx"></div><div id="1rarx"><tr id="1rarx"><object id="1rarx"></object></tr></div>
      <em id="1rarx"></em>

          存档

          ‘php’ 分类的存档

          mac自带的php-fpm页面空白以及错误日至输出

          2019年2月8日 没有评论

          配置好nginx、php-fpm之后,访问html页面正常,访问php后台显示空白页面。

          起初怀疑php-fpm问题,关闭php-fpm后在访问报gateway错误,说明php-fpm是正常的。

          重?#24405;?#26597;nginx的配置,发现少了一句。fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

          server {
                  listen 8081;
                  server_name localhost;
                  root /Users/chenhe/Project/cx/;
          
                  error_log  logs/error.log;
          
                  index index.php index.html;
          
          
                  location ~ \.php$ {
                      include        fastcgi.conf;
                      fastcgi_pass   127.0.0.1:9000;
                      fastcgi_index  index.php;
                      fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
                      include        fastcgi_params;
                  }
                  error_page 404 /404.html;
          }

          添加后重启nginx恢复正常。

          运行之后发现php-fpm不输出php错误日志。

          1. 修改 php-fpm.conf 文件,添加(或修改)如下配置:

          catch_workers_output = yes

          2. 修改 php.ini 文件,添加(或修改)如下配置:

            log_errors = On
            error_log = /usr/local/etc/php/5.4/php_errors.log
            error_reporting=E_ALL&~E_NOTICE

          3. 重启 php-fpm

          还是不输出日志,期间尝试很多办法,最后发现可能是权限问题。把启动php-fpm的方式修改为普通用户权限就解决问题了。

          sudo php-fpm -D 改为 php-fpm -D

          默认时区提示

          PHP Warning:  Unknown: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in Unknown on line 0

          在php.ini 中修改

          data.timezone = Asia/Shanghai

          分类: php 标签:

          php7安装runkit

          2019年1月19日 没有评论

          升级到php7后网上安装runkit的方法描述的不够详细。

          
          git clone https://github.com/runkit7/runkit7.git
          cd runkit7/
          
          /usr/local/php/7.1bin/phpize 
          
          ./configure --with-php-config=/usr/local/php7.1/bin/php-config
          make
          make install
          Installing shared extensions:     /usr/local/php7.1/lib/php/extensions/no-debug-non-zts-20160303/

          然后在php.ini 或者 /usr/local/php7.1/conf.d 下的?#25105;?#19968;个.ini文件中增加

          extension = "runkit.so"

          重启php-fpm加载模块

          分类: php 标签:

          php-fpm不输出php错误日志

          2016年12月18日 没有评论

          使用如下php的配置
          php-fpm.conf

          php.ini

          当通过浏览器访问系统发生500错误时,不记录错误日志内容,通过使用php在命令行直接执行php脚本却可以生成错误日至到日志文件。
          说明php的配置正确,后台能够生成日志,问题应该出在php脚本自身上。

          查询源码后发现php中有error_reporting(0);屏蔽了所有错误。
          修改成error_reporting(E_ALL);可以生成错误信息到日志文件了。

          分类: php 标签: ,

          您需要安装旧 Java SE 6 运行环境才能打开“PhpStorm”

          2015年11月1日 没有评论

          mac安装java1.8之后打开phpstrom会报这个错误。

          解决办法:
          1.在终端下进入/Applications/PhpStorm.app/Contents目录,然后编辑Info.plist

          2.修改JVMVersion的值为1.8
          JVMVersion
          1.8*

          3.重新打开phpstrom

          分类: php 标签:

          什么是psr-0,psr-1,psr-2标准

          2015年3月7日 没有评论

          FIG组织在制定跟PHP相关规范,简称PSR,PSR旨在通过讨论我们代码项目的共同点以?#39029;?#19968;个协作编程的方法。

          什么是psr0强调自动加载的方式
          下文描述了若要使用一个通用的自动加载器(autoloader),你所需要遵守的规范:

          规范

          一个完全标准的命名空间(namespace)和类(class)的结构是这样的:\()*
          每个命名空间(namespace)都必须有一个顶级?#30446;?#38388;名(namespace)("组织名(Vendor Name)")。
          每个命名空间(namespace)中可以根据需要使用?#25105;?#25968;量的?#29992;?#21517;空间(sub-namespace)。
          从文件系统中加载源文件时,空间名(namespace)中的分隔符将被转换为 DIRECTORY_SEPARATOR。
          类名(class name)中的每个下划线_都将被转换为一个DIRECTORY_SEPARATOR。下划线_在空间名(namespace)中没有什么特殊的意义。
          完全标准的命名空间(namespace)和类(class)从文件系统加载源文件时将会?#30001;?php后缀。
          组织名(vendor name),空间名(namespace),类名(class name)都由大小写字母组合而成。
          示例

          空间名(namespace)和类名(class name)中的下划线

          以上是我们为实现通用的自动加载而制定的最低标准。你可以利用能够自动加载PHP 5.3类的SplClassLoader来测试你的代码是否符合这些标准。

          实例

          下面是一个怎样利用上述标准来实现自动加载的示例函数。

          SplClassLoader实现

          下面的gist是一个按照上面建议的标准来自动加载类的SplClassLoader实例。这是依据这些标准来加载PHP 5.3类的推荐方案。

          什么是psr1,定义基本代码规范
          本节我们将会讨论一些基本的代码规范问题,以此作为将来讨论更高级别的代码分享和技术互用的基础。

          RFC 2119中的必须(MUST),不可(MUST NOT),建议(SHOULD),不建议(SHOULD NOT),可以/可能(MAY)等关键?#24335;?#22312;本节用来做一些解释性的描述。

          1. 概述

          源文件必须只使用 这两种标签。

          源文件中php代码的编码格式必须只使用不带字节顺序标记(BOM)的UTF-8。

          一个源文件建议只用来做声明(类(class),函数(function),常量(constant)等)或者只用来做一些引起副作用的操作(例如:输出信息,修改.ini配置等),但不建议同时做这两件事。

          命名空间(namespace)和类(class) 必须遵守PSR-0标准。

          类名(class name) 必须使用骆驼式(StudlyCaps)写法 (译者注?#21644;?#23792;式(cameCase)的一?#30452;?#31181;,后文将直接用StudlyCaps表示)。

          类(class)中的常量必须只由大写字母和下划线(_)组成。

          方法名(method name) 必须使用驼峰式(cameCase)写法(译者注:后文将直接用camelCase表示)。

          2. 文件

          2.1. PHP标签

          PHP代码必须只使用长标签()或者短输出式标签(<?= ?>);而不可使用其他标签。

          2.2. 字符编码

          PHP代码的编码格式必须只使用不带字节顺序标记(BOM)的UTF-8。

          2.3. 副作用

          一个源文件建议只用来做声明(类(class),函数(function),常量(constant)等)或者只用来做一些引起副作用的操作(例如:输出信息,修改.ini配置等),但不建议同时做这两件事。

          短语副作用(side effects)的意思是 在包含文件时 所执行的逻辑与所声明的类(class),函数(function),常量(constant)等没有直接的关系。

          副作用(side effects)包含但不局限于:产生输出,显式地使用require或include,连接外部服务,修改ini配置,触发错误或异常,修改全局或者静态变量,读取或修改文件等等

          下面是一个既包含声明又有副作用的示例文件;即应避免的例子:

          下面是一个仅包含声明的示例文件;即应提倡的例子:

          3. 空间名(namespace)和类名(class name)

          命名空间(namespace)和类(class)必须遵守 PSR-0.

          这意味着一个源文件中只能有一个类(class),并且每个类(class)至少要有一级空间名(namespace):即一个顶级的组织名(vendor name)。

          类名(class name) 必须使用StudlyCaps写法。

          PHP5.3之后的代码必须使用正式的命名空间(namespace) 例子:

          4. 类的常量、属性和方法

          术语类(class)指所有的类(class),接口(interface)和特性(trait)

          4.1. 常量

          类常量必须只由大写字母和下划线(_)组成。 例子:

          4.2. 属性

          本?#25913;?#20013;故意不对$StulyCaps,$camelCase或者$unser_score中的某一种风格作特别推荐,完全由读者依据个人喜好决定属性名的命名风格。

          但是不管你如何定义属性名,建议在一个合理的范围内保持一致。这个范围可能是组织(vendor)级别的,包(package)级别的,类(class)级别的,或者方法(method)级别的。

          4.3. 方法

          方法名则必须使用camelCase()风格来声明。

          什么是PSR2定义代码风格

          代码风格?#25913;?br /> 本手册是基础代码规范(PSR-1)的继承和扩展。

          为了尽可能的提升阅读其他人代码时的效率,下面例举了一系列的通用规则,特别是有关于PHP代码风格的。

          各个成员项目间的共性组成了这组代码规范。当开发者们在多个项目中合作时,本?#25913;?#23558;会成为所有这些项目中共用的一组代码规范。 因此,本?#25913;?#30340;益处不在于这些规则本身,而在于在所有项目中共用这些规则。

          RFC 2119中的必须(MUST),不可(MUST NOT),建议(SHOULD),不建议(SHOULD NOT),可以/可能(MAY)等关键?#24335;?#22312;本节用来做一些解释性的描述。

          1. 概述

          代码必须遵守 PSR-1。

          代码必须使用4个空格来进行缩进,而不是用制表符。

          一行代码的长度不建议有硬限制;软限制必须为120个字符,建议每行代码80个字符或者更少。

          在命名空间(namespace)的声明下面必须有一行空行,并且在导入(use)的声明下面也必须有一行空行。

          类(class)的左花括号必须放到其声明下面自成一行,?#19968;?#25324;号则必须放到类主体下面自成一行。

          方法(method)的左花括号必须放到其声明下面自成一行,?#19968;?#25324;号则必须放到方法主体的下一行。

          所有的属性(property)和方法(method) 必须有可见性声明?#24576;?#35937;(abstract)和终结(final)声明必须在可见性声明之前;而静态(static)声明必须在可见性声明之后。

          在控制结构关键字的后面必须有一个空格;而方法(method)和函数(function)的关键字的后面不可有空格。

          控制结构的左花括号必须跟其放在同一行,?#19968;?#25324;号必须放在该控制结构代码主体的下一行。

          控制结构的左括号之后不可有空格,?#20381;?#21495;之前也不可有空格。

          1.1. 示例

          这个示例中简单展示了上文中提到的一些规则:

          2. 通则

          2.1 基础代码规范

          代码必须遵守 PSR-1 中的所有规则。

          2.2 源文件

          所有的PHP源文件必须使用Unix LF(换行)作为行结束符。

          所有PHP源文件必须以一个空行结束。

          纯PHP代码源文件的关闭标签?> 必须省略。

          2.3. 行

          行长度不可有硬限制。

          行长度的软限制必须是120个字符;对于软限制,代码风格检查器必须警告但不可报错。

          一行代码的长度不建议超过80个字符;较长的行建议拆分成多个?#24576;?#36807;80个字符的?#26377;小?/p>

          在非空行后面不可有空格。

          空行可以用来增强可读性和区分相关代码块。

          一行不可多于一个语句。

          2.4. 缩进

          代码必须使用4个空格,且不可使用制表符来作为缩进。

          注意:代码中只使用空格,且不和制表符混合使用,将会对避免代码差异,补丁,历史和注解中的一些问题有帮助。空格的使用还可以使通过调整细微的缩进来改进行间对齐变得更加的简单。
          2.5. 关键字和 True/False/Null

          PHP关键字(keywords)必须使用小写字母。

          PHP常量true, false和null 必须使用小写字母。

          3. 命名空间(Namespace)和导入(Use)声明

          命名空间(namespace)的声明后面必须有一行空行。

          所有的导入(use)声明必须放在命名空间(namespace)声明的下面。

          一句声明中,必须只有一个导入(use)关键字。

          在导入(use)声明代码块后面必须有一行空行。

          示例:

          4. 类(class),属性(property)和方法(method)

          术语“类”指所有的类(class),接口(interface)和特性(trait)。

          4.1. 扩展(extend)和实现(implement)

          一个类的扩展(extend)和实现(implement)关键?#26102;?#39035;和类名(class name)在同一行。

          类(class)的左花括号必须放在下面自成一行;?#19968;?#25324;号必须放在类(class)主体的后面自成一行。

          实现(implement)列表可以被拆分为多个缩进了一次的?#26377;小?#22914;果要拆成多个?#26377;校?#21015;表的第一项必须要放在下一行,并且每行必须只有一个接口(interface)。

          4.2. 属性(property)

          所有的属性(property)都必须声明其可见性。

          变量(var)关键字不可用来声明一个属性(property)。

          一条语句不可声明多个属性(property)。

          属性名(property name) 不推荐用单个下划线作为?#30333;?#26469;表明其保护(protected)或私有(private)?#30446;?#35265;性。

          一个属性(property)声明看起来应该像下面这样。

          4.3. 方法(method)

          所有的方法(method)都必须声明其可见性。

          方法名(method name) 不推荐用单个下划线作为?#30333;?#26469;表明其保护(protected)或私有(private)?#30446;?#35265;性。

          方法名(method name)在其声明后面不可有空格跟随。其左花括号必须放在下面自成一行,且?#19968;?#25324;号必须放在方法主体的下面自成一行。左括号后面不可有空格,且?#20381;?#21495;前面也不可有空格。

          一个方法(method)声明看来应该像下面这样。 注意括号,逗号,空格和花括号的位置:

          4.4. 方法(method)的?#38382;?/p>

          在?#38382;?#21015;表中,逗号之?#23433;?#21487;有空格,而逗号之后则必须要有一个空格。

          方法(method)中有默?#29616;?#30340;?#38382;?#24517;须放在?#38382;?#21015;表的最后面。

          ?#38382;?#21015;表可以被拆分为多个缩进了一次的?#26377;小?#22914;果要拆分成多个?#26377;校问?#21015;表的第一项必须放在下一行,并且每行必须只有一个?#38382;?/p>

          当?#38382;?#21015;表被拆分成多个?#26377;校依?#21495;和左花括号之间必须又一个空格并且自成一行。

          4.5. 抽象(abstract),终结(final)和 静态(static)

          当用到抽象(abstract)和终结(final)来做类声明时,它们必须放在可见性声明的前面。

          而当用到静态(static)来做类声明时,则必须放在可见性声明的后面。

          4.6. 调用方法和函数

          调用一个方法或函数时,在方法名或者函数名和左括号之间不可有空格,左括号之后不可有空格,?#20381;?#21495;之前也不可有空格。?#38382;?#21015;表中,逗号之?#23433;?#21487;有空格,逗号之后则必须有一个空格。

          ?#38382;?#21015;表可以被拆分成多个缩进了一次的?#26377;小?#22914;果拆分成?#26377;校?#21015;表中的第一项必须放在下一行,并且每一行必须只能有一个?#38382;?/p>

          5. 控制结构

          下面是对于控制结构代码风格的概括:

          控制结构的关键?#25163;?#21518;必须有一个空格。
          控制结构的左括号之后不可有空格。
          控制结构的?#20381;?#21495;之?#23433;?#21487;有空格。
          控制结构的?#20381;?#21495;和左花括号之间必须有一个空格。
          控制结构的代码主体必须进行一次缩进。
          控制结构的?#19968;?#25324;号必须主体的下一行。
          每个控制结构的代码主体必须被括在花括号里。这样可是使代码看上去更加标准化,并且加入新代码的时候还可以因此而减少引入错误?#30446;?#33021;性。

          5.1. if,elseif,else

          下面是一个if条件控制结构的示例,注意其中括号,空格和花括号的位置。同时注意else和elseif要和前一个条件控制结构的?#19968;?#25324;号在同一行。

          推荐用elseif来替代else if,以保持所有的条件控制关键字看起来像是一个单词。

          5.2. switch,case

          下面是一个switch条件控制结构的示例,注意其中括号,空格和花括号的位置。case语句必须要缩进一级,而break关键字(或其他中?#26500;?#38190;字)必须和case结构的代码主体在同一个缩进层级。如果一个有主体代码的case结构故意的继续向下执行则必须要有一个类似于// no break的注释。

          5.3. while,do while

          下面是一个while循环控制结构的示例,注意其中括号,空格和花括号的位置。

          下面是一个do while循环控制结构的示例,注意其中括号,空格和花括号的位置。

          5.4. for

          下面是一个for循环控制结构的示例,注意其中括号,空格和花括号的位置。

          5.5. foreach

          下面是一个foreach循环控制结构的示例,注意其中括号,空格和花括号的位置。

          5.6. try, catch

          下面是一个try catch异常处理控制结构的示例,注意其中括号,空格和花括号的位置。

          6. 闭包

          声明闭包时所用的function关键字之后必须要有一个空格,而use关键字的前后都要有一个空格。

          闭包的左花括号必须跟其在同一行,而?#19968;?#25324;号必须在闭包主体的下一行。

          闭包的?#38382;?#21015;表和变量列表的左括号后面不可有空格,?#20381;?#21495;的前面也不可有空格。

          闭包的?#38382;?#21015;表和变量列表中逗号前面不可有空格,而逗号后面则必须有空格。

          闭包的?#38382;?#21015;表中带默?#29616;?#30340;?#38382;?#24517;须放在?#38382;?#21015;表的结尾部分。

          下面是一个闭包的示例。注意括号,空格和花括号的位置。

          ?#38382;?#21015;表和变量列表可以被拆分成多个缩进了一级的?#26377;小?#22914;果要拆分成多个?#26377;校?#21015;表中的第一项必须放在下一行,并且每一行必须?#29615;?#19968;个?#38382;?#25110;变量。

          当列表(不管是?#38382;?#36824;是变量)最终被拆分成多个?#26377;校依?#21495;和左花括号之间必须要有一个空格并且自成一行。

          下面是一个?#38382;?#21015;表和变量列表被拆分成多个?#26377;?#30340;示例。

          把闭包作为一个?#38382;?#22312;函数或者方法中调用时,依然要遵守上述规则。

          7. 结论

          本?#25913;?#26377;意的省略了许多元素的代码风格。主要包括:

          全?#30452;?#37327;和全局常量的声明

          函数声明

          操作符和赋值

          行间对齐

          注释和文档块

          类名的?#30333;?#21644;后缀

          最佳实践

          以后的代码规范中可能会修正或扩展本?#25913;?#20013;规定的代码风格。

          分类: php 标签:

          php或js判断网站访问者来自手机或者pc端源码

          2015年3月6日 没有评论

          之前写过如何通过nginx来识别手机访问还是pc访问

          很多时候也可以通过逻辑程序来进行判断,如PHP、JS是常用的两种识别访问设备类型的常用方法。

          原理都是采用识别访问客户端的HTTP_USER_AGENT,然后进行关键?#21046;?#37197;进行确定设备类型,对于伪造HTTP头的就区分不出来了。

          区分设备类型然后要做的就是能够针对不同设置显示出易于阅读的网页,具体可以研究响应式布?#26088;?#26415;。

          响应式布局

          本文主要介绍如何通过php或js来识别终端类型。

          php识别手机或者PC访问源码

          方法二

          js区分手机或PC访问源码

          方法一

          方法二

          分类: php 标签:

          spl_autoload_register替代__autoload()

          2015年3月5日 1 条评论

          PHP5.1.2起废弃了__autoload,那么为什么要用spl_autoload_register来取代__autoload()

          最重要的原因是autoload只能定义一个自动加载函数,spl_autoload_register可注册多个自动加载函数到函数栈,实例话对象时会按顺序?#26469;?#35843;用之?#30333;?#20876;过的加载器来自动加载类定义文件。看起来没什么用,但当多个工程混合使用时有自己不懂同的自动加载类实现时,就能体现出优势了。

          __autoload()是一个自动加载函数,在PHP5中,当我们实例化一个未定义的类时,就会触发此函数。
          printit.class.php

          index.php

          访问index.php会输出hello world。在index.php中,没有包含printit.class.php,在实例化PRINTIT时,自动调用__autoload函数,?#38382;?class的值即为类名PRINTIT,此时printit.class.php就被包含到index.php中,避免到处都是include或require,程序更加简洁。

          spl_autoload_register()

          bool spl_autoload_register ([ callback $autoload_function ] )
          将函数autoload_function注册到SPL提供的__autoload函数栈中。
          如果该栈中的函数尚未激活,则激活它们。
          如果在你的程序中已经实?#33267;薩_autoload函数,它必须显式注册到__autoload栈中。
          因为spl_autoload_register()函数会将Zend Engine中的__autoload函数取代为spl_autoload()或spl_autoload_call()。

          ?#38382;?br /> autoload_function
          欲注册的自动装载函数。如果没有提供任何?#38382;?#21017;自动注册autoload的默认实现函数spl_autoload()。

          返回值
          如果成功则返回 TRUE,失败则返回 FALSE。

          注:SPL是Standard PHP Library(标准PHP库)的缩写。它是PHP5引入的一个扩展库,其主要功能包括autoload机制的实现及包括各种Iterator接口或类。SPL autoload机制的实现是通过将函数指针autoload_func指向自己实现的具有自动装载功能的函数来实现的。SPL有两个不同的函数spl_autoload, spl_autoload_call,通过将autoload_func指向这两个不同的函数地址来实现不同的自动加载机制。

          spl_autoload_register实例

          修改index.php中的__autoload?#24576;蒷oadprint函数。但是loadprint不会像__autoload自动触发,需要使用spl_autoload_register()注册到自动加载函数栈中,然后PHP碰到没有定义的类实例化new时就执行loadprint(),?#38382;?#26102;类名PRINTIT。

          spl_autoload_register() 调用静态方法

          分类: php 标签:

          PHP当前时间毫秒

          2015年2月1日 没有评论

          由于php中没有long类型,找了不少计算时间的函数都是浮点数的毫秒,最后发现这个好用,分享给大家
          返回当前计算机时间和GMT时间(格林威?#38382;?#38388;)1970年1月1号0时0分0秒所差的毫秒数,与java中的currentTimeMillis一样。

          分类: php 标签:

          phpstrom 字体 注释修改 自动换行

          2015年2月1日 没有评论

          修改phpstrom编辑器字体
          File -> Settings -> Editor -> Colors & Fonts -> Font
          默认自己是?#30097;?#30340;不能修改,需要另存为一个scheme name才能编辑。

          修改phpstrom界面字体
          File -> Settings -> Appearance & Behavior -> Appearance -> UI option
          选择 Source Code Pro 字体

          修改phpstrom php注释作者样式
          File -> Settings -> Editor -> File and Code Templates -> Includes
          PHP File Header选项

          修改样式

          phpstrom在缩进位置而不是行首添加注释
          Settings -> Code Style -> PHP -> Other -> Code Commenting -> Line comment at first column
          默认是打开的,需要将其关闭

          phpstrom自动换行
          File->Settings->Editor->General->Virtual Space
          勾选 “ Use soft wrap in editor ” //在编辑器中自动换行

          分类: php 标签:

          php解析yaml

          2014年2月1日 1 条评论

          根据官方定义,yaml不是一种标记语言,它是一种容易被人阅读的数据序列化格式,容易与脚本语言?#25442;ィ?#29992;来描述枚举数组(sequences)和关联数组(mappings).

          ymal的语法:
          Structure通过空格来展示。Sequence里的项用"-"来代表,Map里的键值对用":"分隔。

          yaml实例

          1.yaml表示sequence

          每个数组元素以一个连字符和一个空格开头,为了格式化漂亮,可以写多个空格。
          对应php代码

          yaml的枚举数据可以出现在同一样用'[]'包括起来。

          2.yaml表示hash,关联数组

          yaml的关联数组key的声明后紧接着冒号,冒号后面跟着一个或多个空格。一般冒号后有一个空格就足够了,为了好看,可以自己控制数量。
          关联数据对应用的php代码

          关联数据也可以用'{}'包括起来写在一行表示

          yaml表示?#30701;?#32467;构
          通过行首缩进1个或多个空格表示多层结构,如:

          这里为了描述方便,第二层使用了关联数据表示,没有使用连字符'-'格式。

          等同于如下php代码

          yaml表示多个多多维数据,可以没有root元素

          yaml定义很容易记住,需要注意的重点就是缩进必须用一个或多个空格,不能使用tab缩进。

          可以配置IDE的tab为2-4个空格,这样按tab时就会插入空格,这样当使用其它编辑器打开代码是不会错乱,保?#33267;?#22909;的缩进。

          分类: php 标签: ,
          印度快乐8官网
          <em id="1rarx"><ins id="1rarx"></ins></em><sup id="1rarx"></sup>

          <progress id="1rarx"><tr id="1rarx"></tr></progress>
          <sup id="1rarx"><menu id="1rarx"></menu></sup>
          <menuitem id="1rarx"></menuitem><optgroup id="1rarx"><small id="1rarx"><sub id="1rarx"></sub></small></optgroup>

            <sup id="1rarx"><menu id="1rarx"></menu></sup>
            <div id="1rarx"></div><div id="1rarx"><tr id="1rarx"><object id="1rarx"></object></tr></div>
              <em id="1rarx"></em>

                  <em id="1rarx"><ins id="1rarx"></ins></em><sup id="1rarx"></sup>

                  <progress id="1rarx"><tr id="1rarx"></tr></progress>
                  <sup id="1rarx"><menu id="1rarx"></menu></sup>
                  <menuitem id="1rarx"></menuitem><optgroup id="1rarx"><small id="1rarx"><sub id="1rarx"></sub></small></optgroup>

                    <sup id="1rarx"><menu id="1rarx"></menu></sup>
                    <div id="1rarx"></div><div id="1rarx"><tr id="1rarx"><object id="1rarx"></object></tr></div>
                      <em id="1rarx"></em>