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 解析模式通常比将文本通过echoprint输出更有效率。

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。比如在使用函数echoprint时,或在一个变量和一个string进行比较时,就会发生这种转换。

         一个布尔值booleanTRUE被转换成string"1"BooleanFALSE被转换成""(空字符串)

          数组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>转为数组

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

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

8.对象。

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

9.资源

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

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

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

10.NULL

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,542评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,596评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,021评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,682评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,792评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,985评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,107评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,845评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,299评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,612评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,747评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,441评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,072评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,828评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,069评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,545评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,658评论 2 350

推荐阅读更多精彩内容

  • 一、echo语句 1.格式 echo是PHP中的输出语句,可以把字符串输出(字符串用双引号括起来,echo关键字与...
    ISwiftUI阅读 492评论 0 1
  • 一.Apache基础 1.网站几个的基本概念 静态网站: 不支持数据交互的网站,单纯的静态文件(HTML,CSS,...
    小Q逛逛阅读 302评论 1 4
  • 一数组1 自定义数组 索引数组(枚举数组) 定义方法一:使用array方法: ①索引数组(枚举数组):array(...
    简小张阅读 592评论 0 0
  • 此时此刻,他正在餐厅念拼音。我的肺要气炸了。磕磕巴巴,念了ba bo po mu da,每一个拼音都是我提示加透...
    小狐狸的麻麻阅读 657评论 0 1