PHP入门

1.Hypertxt Processing:超文本预处理工具

2.用途:第一,服务端脚本。需要三部分,web服务器,web浏览器,PHP解释器(CGI或服务器模                          块)。

             第二,命令行脚本。直接使用PHP解释器。常用于cron(Linux)或Task Scheduler执行日                       常脚本。

             第三,编写桌面应用程序。PHPGTK。

3.FPM(FastCGI 进程管理器)用于替换 PHP FastCGI 的大部分附加功能,对于高负载网站是非常有用的。

    特性: 第一,支持平滑的停止/启动的高级进程管理功能;

                第二,可以工作于不同的 uid/gid/chroot 环境下,并监听不同的端口和使用不同的 php.ini 配置文件(可取代 safe_mode 的设置);

                第三,发生意外情况的时候能够重新启动并缓存被破坏的 opcode;

                第四,动态/静态子进程产生;

4.PECL :

      pear打包的PHP扩展库仓库。扩展库名字是extname。

5.建立PECL共享库:

      法一,PEAR编译共享库,使用PECL命令。 

      法二,phpize编译。phpize是准备php编译环境的。

6.php-config

     是一个简单的命令行脚本,用于获取php配置信息

7.配置文件 php.ini

      php.ini在php启动时读取,对于服务器模块的php,仅在web服务器启动时读取。而对于CGI和CLI模式下,每次调用都读取。

8. 如果文件内容是纯 PHP 代码,最好在文件末尾删除 PHP 结束标记。这可以避免在 PHP 结束标记之后万一意外加入了空格或者换行符,会导致 PHP 开始输出这些空白,而脚本中此时并无输出的意图。

9.如果在HTML中嵌入PHP脚本

     要输出大段文本时,跳出 PHP 解析模式通常比将文本通过echo或print输出更有效率。

10.php变量类型:

     整型,布尔,浮点,字符串四种标量类型。

     array,object两种复合类型。

     null,resource两种资源类型。

     变量的类型通常不是由程序员设定的,确切地说,是由 PHP 根据该变量使用的上下文在运行时决定的。

      如果想查看某个表达式的值和类型,用var_dump()函数。

        如果只是想得到一个易读懂的类型的表达方式用于调试,用gettype()函数。要查看某个类型,不要用gettype(),而用is_type函数。

          如果要将一个变量强制转换为某类型,可以对其使用强制转换或者settype()函数。

11.boolean

      当转换为boolean时,以下值被认为是FALSE

      布尔值FALSE本身

       整型值 0(零)

       浮点型值 0.0(零)

      空字符串,以及字符串"0"

        不包括任何元素的数组

      不包括任何成员变量的对象(仅 PHP 4.0 适用)

      特殊类型NULL(包括尚未赋值的变量)

        从空标记生成的SimpleXML对象

      所有其它值都被认为是TRUE(包括任何资源)。

12.Integer

      PHP_INT_SIZE:表示整数字长。

      PHP_INT_MAX:表示整数最大值。不同平台值是不一样的。

      整数溢出:

      如果给定的一个数超出了integer的范围,将会被解释为float。同样如果执行的运算结果超出了integer范围,也会返回float。

       当从浮点数转换成整数时,将向下取整。round()四舍五入.

13.浮点数

      NaN

      某些数学运算会产生一个由常量NAN所代表的结果。此结果代表着一个在浮点数运算中未定义或不可表述的值。任何拿此值与其它任何值进行的松散或严格比较的结果都是FALSE。由于NAN代表着任何不同值,不应拿NAN去和其它值进行比较,包括其自身,应该用is_nan()来检查。

      所以永远不要相信浮点数结果精确到了最后一位,也永远不要比较两个浮点数是否相等。如果确实需要更高的精度,应该使用任意精度数学函数或者gmp 函数。

14.字符串

    1>表示方式:单引号,双引号,heredoc,newdoc。

    2>heredoc ,类似于双引号字符串。结束时所引用的标识符必须在该行的第一列,而且,标识符的命名也要像其它标签一样遵守 PHP 的规则:只能包含字母、数字和下划线,并且必须以字母和下划线作为开头。 要注意的是结束标识符这行除了可能有一个分号(;)外,绝对不能包含其它字符。这意味着标识符不能缩进,分号的前后也不能有任何空白或制表符。更重要的是结束标识符的前面必须是个被本地操作系统认可的换行,而结束定界符(可能其后有个分号)之后也必须紧跟一个换行。

    3>newdoc类似于单引号字符串。一个 nowdoc 结构也用和 heredocs 结构一样的标记<<<, 但是跟在后面的标识符要用单引号括起来,即<<<'EOT'。Heredoc 结构的所有规则也同样适用于 nowdoc 结构,尤其是结束标识符的规则。

    4>用花括号{}把它括起来即可。由于{无法被转义,只有$紧挨着{时才会被识别

    5>存取和修改字符串中的字符.   string中的字符可以通过一个从 0 开始的下标,用类似array结构中的方括号包含对应的数字来访问和修改,比如$str[42]。可以把string当成字符组成的array。函数substr()和substr_replace()可用于操作多于一个字符的情况。Note:string也可用花括号访问,比如$str{42}。

          用超出字符串长度的下标写入将会拉长该字符串并以空格填充。非整数类型下标会被转换成整数。非法下标类型会产生一个E_NOTICE级别错误。用负数下标写入字符串时会产生一个E_NOTICE级别错误,用负数下标读取字符串时返回空字符串。写入时只用到了赋值字符串的第一个字符。用空字符串赋值则赋给的值是 NULL 字符。

    6>一个值可以通过在其前面加上(string)或用strval()函数来转变成字符串。

        在一个需要字符串的表达式中,会自动转换为string。比如在使用函数echo或print时,或在一个变量和一个string进行比较时,就会发生这种转换。

         一个布尔值boolean的TRUE被转换成string的"1"。Boolean的FALSE被转换成""(空字符串)

          数组array总是转换成字符串"Array"。NULL总是被转变成空字符串。

         该字符串的开始部分决定了它的值。如果该字符串以合法的数值开始,则使用该数值。否则其值为 0(零)。合法数值由可选的正负号,后面跟着一个或多个数字(可能有小数点),再跟着可选的指数部分。指数部分由 'e' 或 'E' 后面跟着一个或多个数字构成

7.数组

    1>此外key会有如下的强制转换:

       包含有合法整型值的字符串会被转换为整型。例如键名"8"实际会被储存为8。但是"08"则不会强制转换,因为其不是一个合法的十进制数值。

        浮点数也会被转换为整型,意味着其小数部分会被舍去。例如键名8.7实际会被储存为8

        布尔值也会被转换成整型。即键名true实际会被储存为1而键名false会被储存为0

        Null会被转换为空字符串,即键名null实际会被储存为""

        数组和对象不能被用为键名。坚持这么做会导致警告:Illegal offset type

         2>注意这里所使用的最大整数键名不一定当前就在数组中。它只要在上次数组重新生成索引后曾经存在过就行了。unset数组后索引并不从0开始。

          3>转为数组

            对于任意integer,float,string,boolean和resource类型,如果将一个值转换为数组,将得到一个仅有一个元素的数组,其下标为 0,该元素即为此标量的值。如果一个object类型转换为array,则结果为一个数组,其单元为该对象的属性。键名将为成员变量名,不过有几点例外:整数属性不可访问;私有变量前会加上类名作前缀;保护变量前会加上一个 '*' 做前缀。这些前缀的前后都各有一个 NULL 字符。这会导致一些不可预知的行为。将NULL转换为array会得到一个空的数组。 

             数组(Array)的赋值总是会涉及到值的拷贝。注意这点。

8.对象。

       如果将一个对象转换成对象,它将不会有任何变化。如果其它任何类型的值被转换成对象,将会创建一个内置类stdClass的实例。如果该值为NULL,则新的实例为空。数组转换成对象将使键名成为属性名并具有相对应的值。对于任何其它的值,名为scalar的成员变量将包含该值。

9.资源

         一种特殊变量,保存了到外部资源的一个引用。资源是通过专门的函数来建立和使用的。

        转换资源:由于资源类型变量保存有为打开文件、数据库连接、图形画布区域等的特殊句柄,因此将其它类型的值转换为资源没有意义。

        释放资源:由于 PHP 4 Zend 引擎引进了引用计数系统,可以自动检测到一个资源不再被引用了(和 Java 一样)。这种情况下此资源使用的所有外部资源都会被垃圾回收系统释放。因此,很少需要手工释放内存。

10.NULL

       使用(unset) $var将一个变量转换为null将不会删除该变量或 unset 其值。仅是返回NULL值而已。

你可能感兴趣的:(PHP入门)