在 PHP 中 array(数组)则较为特殊,array 可以是多维数组,数组的设定变化 较多和自由,数组的索引不限定只可以用整数,也可以用字符串来标示。假如没 有标明数组的索引值,如:a[],则会引用上一个整数之索引值往下递增,如先 前使用到 a[5], 则下一个 a[]相当于 a[6]。 给定数组初值时用 array 关键词来标明。 基本上,PHP 的 array 很像杂凑表和索引数组的综和体(hash table and indexed array),我们可以用数值的索引方式(index 值从 0 开始),也可以用字符串做为键 值(key)的杂凑表。 array 的 key 值和资料值则用 = 做关连。 而 以下是一个简例: $a[0] = abc; $a[1] = def; #数值索引 0 #数值索引 1 “水果”
? 执行的结果如下: 现在执行第 0 圈慢跑. 现在执行第 1 圈慢跑. 现在执行第 2 圈慢跑. 现在执行第 现在执行第 现在执行第 现在执行第 3 4 5 6 圈慢跑. 圈慢跑. 圈慢跑. 圈慢跑.
现在执行第 7 圈慢跑. 现在执行第 8 圈慢跑. 现在执行第 9 圈慢跑. 总共跑了 10 圈. 现在执行第 现在执行第 现在执行第 现在执行第 现在执行第 现在执行第 现在执行第 现在执行第 0 1 2 3 4 5 6 7 圈慢跑. 圈慢跑. 圈慢跑. 圈慢跑. 圈慢跑. 圈慢跑. 圈慢跑. 圈慢跑.
PHP 的运算符号及表示式(expression)大致上和 C/C是一样的, 只有一些比 较特殊的除外,这些运算符号如: 符号 $ 意义 变数, 则是以$c 变数,如: $c。而$$c 则是以 的内 。 容取变量(间接变量) 即以$c ,即以 容取变量(间接变量) 即以 的内容 ,
以下是执行后观看浏览器的原始码 (不是浏览器显示的 HTML 结果,而 结果, 不是浏览器显示的 的原始码)之结果 之结果: 是 HTML 的原始码 之结果:
【注意】 :当数值和字符串做运算时,表示式的结果是依数值数据之型态而定。 我们可用 gettype()函数来取得某数据或变量之数据型态。
echo()可用来输出多个参数之数据,而 print()则仅能输出一个参数之数据,它们 并不是函数,而是语法。而 print_r()则是一个较特别的函数,可用人类可阅读的 方式来显示数据,用于显示 array 时特别的好用。至于 printf()和 sprintf()则是用 来做格式化输出, 其用法和 C 语言中的 printf()及 sprintf()是运作的方式是差不多 的。sprintf()会把数据 args 以 format 指示的格式输出到传回值字符串中,我们可 用变量来接收它。而 printf()则直接输到输出设备去,相当于直接输出到浏览器 中,而 sprint()则不会。格式 format 字符串和 C 语言的格式码类似,其包含:导 前添充指示(padding specifier flag)、对齐指示(alignment)、最小宽度(minimum width)、精确度(precision)和数据类别(type)。格式码可表示如下: %[F][A][W][.P]Type 其详细说明如下:
取得 HTML 字符转换表 取得档案中所有 META 标记数据 转换 HTML 所有特殊字符 转换 HTML 特殊字符(如: ) 缝接字符串, explode 的反向动作 同 implode 去掉字符串中导前的空格符(whitespace) 计算字符串之 RSA MD5 杂凑编码 计算字符串之 metaphone 键值,类似 soundex() 于换行字符前插入BR 传回字符之 ASCII CODE 值,chr()的反向动作 剖析 URL 之 query 字符串成相对应的变量和变量值 输出字符串 输出格式化字符串 转换 quoted_printable 字符串为 8 bits 字符串 于 meta 字符 .\*?[^]($) 之前加入 \ 将 URL 编码字符串还原 将字符串作 URL 编码 设定地域化信息 计算两个字符串的相似度 计算字符串的发音值 格式化输出数据到字符串中 比较字符串大小(不分大小写) 寻找字符串中第一次出现指定字符(也可以是字符串), 传回其后的所有字符串 比较字符串大小(分大小写) 寻找非屏蔽字符之长度(字数) 去掉 HTML 和 PHP 标记 去掉反斜线 \ (保留 C 语言的脱离码) 去掉反斜线 \ (不保留 C 语言的脱离码) 不分大小写版的 strstr 取得字符串长度 寻找字符串中第一次出现指定字符(字符串)的位置 寻找字符串中最后一次出现指定字符(也可以是字符 串),传回其后的所有字符串 重复字符串 n 次 反转字符串 寻找字符串中最后一次出现指定字符(字符串)的位 置 寻找屏蔽字符之长度(字数) 寻找字符串中第一次出现指定字符串,传回其后的所 有字符串 剖析字符串,同 C 语言的 strtok
for 循环是含有初值设定、条件判断和计数功能的循环,但每一个部份不一 定都需要有式子。 我们可以想象一下如何精确的跑完 20 圈, 首先将计数计归零(初 值设定),看一下是否要跑?跑了 20 圈没有?(条件判断),若需要跑则执行跑步 的动作。每跑完一圈按一下计数器(增量设定、计数功能)。for 循环的语法如下: for( initial expr1; condition expr2; counter expr3) { statements; } 其中,initial expr1 为初值设定(严格来说是要执行循环前的工作设定),而 condition expr2 则是判断循环要不要执行的依据,最后的 counter expr3 则是每 一次循环结束时要做的事情。 例:
所谓样本或样式(pattern)就是「文字的特征」或「文字的规则」或「文字的 长相」 。以下是 pattern 的符号及意义列表(可参考 MySQL 的 REGEXP 及 PHP 的 说明文件): 运算符号 ^ 说明及范例 符合此字符串开头,如: “^one” 以 “one” 开头的字符串 符合此字符串结尾,如: “world$” 以 “world” 结尾的字符串 符合任一字符,如: “Bo.k” 不限定第三个字符为何元,如: “Book”和 “Bock”皆成功 符合 0 个以上的连续相同字符,如: “Bo*k” 要求 ‘B’ 和 ‘k’ 之间可有任意多个 ‘o’ 字符 符合 1 个以上的连续相同字符,如: “Bok” 要求 ‘B’ 和 ‘k’ 之间至少含一个 ‘o’ 字符 符合 0 或 1 个字符,如: “Bo?k” 限定‘B’ 和 ‘k’ 之间至多可有一个 ‘o’ 字符 符合 a 字符串或 b 字符串,如: “gifbmp” 限定含 “gif” 或 “bmp” 字样 为破折号(OR) 符合 0 个以上之连续相同字符串(多个字符),如: “(na)*” 限定含 0 个以上之连续相同字符串 “na” 另外一种重复的表示法 a*可表示为 a{0,}
小写的比对,而 eregi()则为不分大小写的比对,若比对成功则传回 true,否则传 回 false。ereg_replace()和 eregi_replace()则比对成功时,会附带地执行取代的任 务。split()函数则用来把字符串分解成一数据串行。而 sql_regcase()则用来产生不 分大小写的比对 pattern,以便用于数据库之数据常规比对。这些函数的主要任 务是找寻 haystack 字符串中是否有合乎 pattern 所指示的样式文字(pattern), 也就 是对 haystack 字符串做样本比对或样本匹配。
例如我们想检查一下网域名称中之网域是否合法?是否为二至三个字之英文字 母,则可撰写程序如下: ? $a=
执行 PHP 程序的 OS 别,如: “WIN32”, “Linux” , true 真值 false 假值 mask 值为 1,发生错误时个人HPH学习,用来设定 ,发生错误时, error_reporting()的层级。通常 ()的层级 ()的层级。 ERROR 发生时,程序会中断并产生 发生时, 错误的讯息报告 mask 值为 2,同上,用于 WARNING ,同上, 警告发生时。程序不会中断, 警告发生时。程序不会中断,可帮助 debug(除错 除错) 除错 mask 值为 4,同上,用于分析语法错 ,同上, 误发生时 mask 值为 8,同上,不寻常的讯息发 ,同上, 生时, 档案, 生时, : 存取未定义的变量、 如 存取未定义的变量、 档案, 大都用于除错, 大都用于除错,此时任何可能的错误 皆会报告 mask 值为 16,同上,PHP 核心程序 ,同上, 产生错误时 mask 值为 32,同上,PHP 核心程序 , 同上, 产生警告时 所有可能的错误 12481632
在 PHP 中字符串可以用点(dot ‘.’)串接字符串或变量,但不可以用 ‘’ 号。 字符串中的字符可以用数组索引的方式运作(如 C/C),如: $str= “Hello”;
我们可使用 require()或 include()来把一个档案的内容引入目前的档案中(或 执行位置) ,以下是 require()和 include()的使用说明: require( “檔名” ); 文件名所指的程序在网页程序执行前,即加载成为网页程序的一部份;通常
当做变量的名称, 如 当做变量的名称, : $c= “abc”, $$c , 则 相当于 $abc 设定数组的元素 字符串串接 字符串串接的简写, $a=$a$b; 可 字符串串接的简写, : 如 以简化为 $a .= $b; 逻辑的 AND,同意于 && , 逻辑的 OR,同意于 , 逻辑的 XOR 加在函数名称之前, 加在函数名称之前,disable 该函数会 产生之警告讯息
在 PHP 中,如 C/C语言,允许程序设计者将常用的程序代码及变量等组 件, 组成一个独立的函数(function)或对象(object), 以利程序的设计和开发及利用。
PHP 的函数和 C/C语言一样,包含有传回值及无传回值两种,然而,不同 的是宣告的方式及使用传回值的方式不同,而且函数的名称上是不分大小写 函数的名称上是不分大小写的, 函数的名称上是不分大小写 这一点和 C/C是不一样的。另外,函数出现的位置没有限定。 注意】 变量名 :变量名 【注意】 : 称是大小写不同的! 称是大小写不同的!因此,设计函数的名称时要特别的注意到这个特性。以下是 函数宣告的语法:
$name = “blob”; $a = “$name”; $b = ‘$name’; 结果 $a 的内容为 “blob” 这个文字,而 $b 的内容则为 “$name” 这个文字。 换言之,用单引号括起来的字符串中的任何文字皆不会被改变,但用双引号括起 来的文字中若含变量名称,则会以变量之值取代之。
string(字符串)可以为单一字符或多字符的字符串。脱离码(Escape sequence) 的用法和 C/C一样, \”, \\, \n, \r, \t … 等等。 如: 字符串与变量间可用 “.” 串接。 字符串的标示方法有两种: (一)用双引号括起来、 (二)用单引号括起来。用双 引号括起来的字符串中若含有变量名,则该变量会被展开(expand),而用单引号 括起来者则否。用双引号括起来的字符串可以使用脱离码(Escape sequence),其
【注意】 :注意‘\x0’(不会展开) 和 “\x0”(脱离码) 的异同。isset()除了该变 量未定义或该变量为 null 之外皆为 true。 empty()测试,当变量有设定且其值不为 0、 ‘0’、 “0”或 null 时为假(false),否则 为线”、null 及未定义皆为 empty。而 isset()测试,则用 来测试某变量是否存在(有定义且非 null;defined and not null),若存在则为真, 否则为假。我们可用 unset()来取消(删除)某一个变数。
PHP 支持的数据型态不多,有:string(字符串) ,integer(整数) ,double (双浮点数) ,array(数组)和 object(对象)等等。变量事先不需要宣告,可
现在执行第 现在执行第 现在执行第 现在执行第 现在执行第 现在执行第 现在执行第 现在执行第
现在执行第 9 圈慢跑. 总共跑了 10 圈. 现在执行第 0 圈(偶数)慢跑. 现在执行第 2 圈(偶数)慢跑. 现在执行第 4 圈(偶数)慢跑. 现在执行第 6 圈(偶数)慢跑. 现在执行第 8 圈(偶数)慢跑. 注:我们可以像 C/C一样用 break 中断循环及 continue 提早本次循环的完成而 进入下一个循环。
【注】 :未定义的变量于逻辑测试时相当于 false。可用{}括起一个元素以做 明显的区隔,可用于字符串之内。
除了相关的流程控制语句之外,我们可以用 break 以及 continue 来改变程序 中循环的流程。break(中断)的主要用意为跳出目前的循环(离开循环),最主要是 用于 while loop 和 for loop 中。而 continue(继续)的主要用意为使循环提早进入下 一圈(相当于 goto 到循环尾巴)。break 和 continue 的例子,请参考前面 for loop 的例子。
系统一般预设的错误层次为 E_ALL & ~E_NOTICE,即显示所有的错误,但不 会出现如变量未定义这一种错误讯息,必竟那可能是正常的,因为 PHP 允许变 量事先不存在。这项设定设定于 php.ini 这个档案中。 如下所示:
要使用档案之前必需先开启该档案,并给予一个档案代码。开启档案的函数 为 fopen(),它能开启服务器档案系统上的任何档案,或透过 HTTP、FTP 通讯协 议而开启档案。其原型如下: int fopen(string filename, string mode, int [use_include_path] ); fopen()这个函数会使用 mode 模式开启 filename 这个档案,若开启失败则传回 false,否则传回该档案之代码。若有指明 use_include_path(设其值为 1),则也会 到 PHP 环境参数 include_path(设于 php.ini) 所指定的目录去寻找。 假如 filename 字符串是以 “不分大小写)开头,则用 HTTP 1.0 协议联机到指定的服务 器上, 档案指标则指向传回文件的开头处。 filename 是以 “ftp://” (不分大小写) 若 开头,则和指定的服务器建立联机,并将档案指标指向档案的开头处。若该 FTP 服务器没支持被动模式(passive mode ftp)则传回 false。而开启的档案仅能执行读 或写,不能同时读写。至于 mode 档案模式,其值和意义如下表: 档案模式(mode) a 说明 把档案开启成唯写的附加模式(append mode),档案指针指 向文件尾,即数据写入(附加)到档尾。假如档案事先不 存在,则建立一个新档 把档案开启成可擦写的附加模式,档案指针指向文件尾, 即数据写入(附加)到档尾。假如档案事先不存在,则建
现在执行第 8 圈慢跑. 现在执行第 9 圈慢跑. 总共跑了 10 圈. 现在执行第 0 圈慢跑. 现在执行第 1 圈慢跑. 现在执行第 2 圈慢跑. 现在执行第 3 圈慢跑. 现在执行第 4 圈慢跑. 现在执行第 5 圈慢跑. 现在执行第 现在执行第 现在执行第 现在执行第 6 7 8 9 圈慢跑. 圈慢跑. 圈慢跑. 圈慢跑.
假如,我们想处理数值,尤其是金钱,此时可用 number_format()来做三位一逗 点的处理:
立一个新档 把档案开启成只读之读取模式,档案指针指向文件头。假 如档案事先不存在,则传回 false 把档案开启成可擦写模式,档案指针指向文件头。假如档 案事先不存在,则传回 false 把档案开启成唯写之写入模式,档案指针指向文件头,并 将档案长度截成 0 bytes,即消除原数据。假如档案事先不 存在,则建立一个新档 把档案开启成可擦写模式,档案指针指向文件头,并将档 案长度截成 0 bytes, 即消除原数据。 假如档案事先不存在, 则建立一个新档
程序中的 echo $EMPNO 及 echo $ENAME 及 echo $SALARY,目前并没有作 用,因为其值依程序逻辑而言永为未定义。假如,我们修改程序使它具有 UPDATE(修改)数据的功能时就会有用。
注意:执行 each() 时,会自动地移动位置到下一个元素的位置。 又如:(注意 key()值的变化)
可以使用标准 C 语言多行的批注 /* 批注文字 */ 也可以使用标准 C语言单行的批注 // 批注文字
PHP 的系统常数和内容,如下表所示: 系统常数名称 __FILE__ 内容的定义 程序的文件名, 目前被解析的 PHP 程序的文件名, 若 目前被解析的程序是 include()或 或 require()中的程序则改为本子程序的 中的程序则改为本子程序的 档名, 档名,而不是父程序的文件名 本__LINE__出现处位于 PHP 程序的 出现处位于 行号,即本行为第几行。 行号,即本行为第几行。若目前被解 析的程序是 include()或 require()中的 或 中的 程序则改为本子程序的行号 PHP 的版本代号,如: “3.0.8-dev” 的版本代号,
传回小写之字符串 传回大写之字符串 取代字符串 转换字符串(可多个)或逐一字符转换 取得部份字符串 取代部份字符串 去掉字符串头尾之空格符 字符串第一个字转成大写 每个字(word)的第一个字符皆转成大写编程猫代码岛3.0入口php修改密码代码
版权声明:本文为 “个人代码云儿美,个人php学习” 原创文章,转载请附上原文出处链接及本声明;
留言与评论(共有 条评论) |