即使使用 PHP 多年 也会偶然发现一些未曾了解的函数和功能 其中有些是非常有用的 但没有得到充分利用 并不是所有人都会从头到尾一页一页地阅读手册和函数参考!
任意参数数目的函数
你可能已经知道 PHP 允许定义可选参数的函数 但也有完全允许任意数目的函数参数的方法 以下是可选参数的例子
以下为引用的内容
// function with optional arguments function foo($arg = $arg = ) {
echo "arg : $arg n"; echo "arg : $arg n";
}
foo( hello world ); / prints: arg : hello arg : world /
foo(); / prints: arg : arg : /
现在让我们看看如何建立能够接受任何参数数目的函数 这一次需要使用 func_get_args() 函数
以下为引用的内容
// yes the argument list can be empty function foo() {
// returns an array of all passed arguments $args = func_get_args();
foreach ($args as $k => $v) { echo "arg" ($k+ ) ": $vn"; }
}
foo(); / prints nothing /
foo( hello ); / prints arg : hello /
foo( hello world again ); / prints arg : hello arg : world arg : again /
使用 Glob() 查找文件
许多 PHP 函数具有长描述性的名称 然而可能会很难说出 glob() 函数能做的事情 除非你已经通过多次使用并熟悉了它 可以把它看作是比 scandir() 函数更强大的版本 可以按照某种模式搜索文件
以下为引用的内容
// get all php files $files = glob( php );
print_r($files); / output looks like: Array ( [ ] => phptest php [ ] => pi php [ ] => post_output php [ ] => test php ) /
你可以像这样获得多个文件
以下为引用的内容
// get all php files AND txt files $files = glob( {php txt} GLOB_BRACE);
lishixinzhi/Article/program/PHP/201311/21182
PHP 是一种脚本语言,可以编写包含嵌入式代码的Web 页面,只要访问页面就能执行这些代码,并且这些代码还能生成动态的内容作为输出的一部分发送到客户机的Web 浏览器。本章描述了如何用PHP编写使用MySQL的基于We b的应用程序。有关C 与PHP 和Perl DBI API 的比较,请参阅第5章“MySQL程序设计介绍”。
本章的实例利用了样例数据库samp_db,这个实例使用了为学分保存方案而创建的表和第1章“MySQL和SQL 介绍”中为历史同盟而创建的表。虽然在写本书时PHP 4还处于测试阶段,而当您读到本书时它可能已经发布了,但这里还是要涉及PHP 3的内容。与PHP 3兼容是PHP 4 的一个明确设计目标,因此这里所说的有关PHP 3的各个方面都可应用到PHP 4中。从PHP 3 更改到PHP 4 有一组移植注意事项。如果使用PHP 4,就应该阅读那些注释。
本章假设的环境是:PHP 与Apache Server结合使用。必须安装MySQLC 客户机库和头文件,因为建立PHP 时需要这些文件,否则PHP 不知道如何访问MySQL数据库。如果需要获得一些这样的软件,请参阅附录A“获得和安装软件”。附录中还给出了获得本章开发的实例脚本的说明,您可以直接下载这些脚本。
在UNIX 环境下,PHP 或者作为内建模块用于Apache,该模块连接到Apache 可执行的二进制程序上;或者作为独立的用于传统CGI 程序的解释程序。在Windows 环境下,虽然开发在Windows NT 环境下运行的Apache PHP 4 模块的工作正在进行之中,但是此刻的PHP只能作为一个独立程序来运行。
本章的大部分篇幅,都用来说明了在这里讨论所需要的PHP 函数。要想较全面地了解所有关于MySQL的函数,请参阅附录H“PHP API 参考”,也可以查阅PHP 手册,它描述了PHP 提供的全部函数,包括使用除MySQL以外的数据库的函数(使用MySQL时,PHP不受限制的部分仅仅只有DBI)。这个手册可以从PHP Web 站点下载: http://wwwphpnet/。该Web 站点也有从PHP 3移植到PHP 4的注意事项。
PHP 脚本的文件名带有扩展名,该扩展名允许Web 服务器识别文件名并执行PHP 解释程序去处理它们。如果使用了不可识别的扩展名,则PHP 脚本被当作纯文本。本章使用的扩展名为 p h p,其他通用的扩展名为php3 和 p h t m l。有关配置Apache 来识别扩展名的说明,请参阅附录A。在机器上,如果没有掌握Apache 的安装,那么需要与系统管理员一起检查,找出可使用的适当扩展名。
本地测试的程序上传到服务器出现很多错误,Deprecated: Function split() is deprecated查了原因是因为PHP的版本不同所导致的,本身程序开发的时候用的是PHP52以下版本,而现在空间上用的是PHP53的版本,很多PHP函数已经过时不能用了,这里的这个错误原因就是函数split()在 PHP53 中已经不建议使用了。
PHP 能做任何事。PHP 主要是用于服务端的脚本程序,因此可以用 PHP 来完成任何其它的 CGI 程序能够完成的工作,例如收集表单数据,生成动态网页,或者发送/接收 Cookies。但 PHP 的功能远不局限于此。
PHP 脚本主要用于以下三个领域:
(1)服务端脚本。这是 PHP 最传统,也是最主要的目标领域。开展这项工作需要具备以下三点:PHP 解析器(CGI 或者服务器模块)、web 服务器和 web 浏览器。需要在运行 web 服务器时,安装并配置 PHP,然后,可以用 web 浏览器来访问 PHP 程序的输出,即浏览服务端的 PHP 页面。如果只是实验 PHP 编程,所有的这些都可以运行在自己家里的电脑中。请查阅安装一章以获取更多信息。
(2)命令行脚本。可以编写一段 PHP 脚本,并且不需要任何服务器或者浏览器来运行它。通过这种方式,仅仅只需要 PHP 解析器来执行。这种用法对于依赖 cron(Unix 或者 Linux 环境)或者 Task Scheduler(Windows 环境)的日常运行的脚本来说是理想的选择。这些脚本也可以用来处理简单的文本。请参阅 PHP 的命令行模式以获取更多信息。
编写桌面应用程序。对于有着图形界面的桌面应用程序来说,PHP 或许不是一种最好的语言,但是如果用户非常精通 PHP,并且希望在客户端应用程序中使用 PHP 的一些高级特性,可以利用 PHP-GTK 来编写这些程序。用这种方法,还可以编写跨平台的应用程序。PHP-GTK 是 PHP 的一个扩展,在通常发布的 PHP 包中并不包含它。
(3)PHP 能够用在所有的主流 *** 作系统上,包括 Linux、Unix 的各种变种(包括 HP-UX、Solaris 和 OpenBSD)、microsoft Windows、Mac OS X、RISC OS 等。今天,PHP已经支持了大多数的 web 服务器,包括 Apache、Microsoft Internet Information Server(IIS)、Personal web Server(PWS)、Netscape 以及 iPlant server、Oreilly Website Pro Server、Caudium、Xitami、OmniHTTPd 等。对于大多数的服务器,PHP 提供了一个模块;还有一些 PHP 支持 CGI 标准,使得 PHP 能够作为 CGI 处理器来工作。
1缺少declare,正确的描述如下
private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
2 declare的说明
Declare 语句
用于在模块级别中声明对动态链接库 (DLL) 中外部过程的引用。
语法 1
[Public | Private] DeclareSubnameLib"libname" [Alias"aliasname"] [([arglist])]
语法 2
[Public | Private] DeclareFunctionnameLib"libname" [Alias"aliasname"] [([arglist])] [Astype]
Declare 语句的语法包含下面部分:
部分 描述
Public 可选的。用于声明对所有模块中的所有其它过程都可以使用的过程。
Private 可选的。用于声明只能在包含该声明的模块中使用的过程。
Sub 可选的(但Sub 或 Function 二者需选其一)。表示该过程没有返回值。
Function 可选的(但Sub 或 Function 二者需选其一)。表示该过程会返回一个可用于表达式的值。
name 必需的。任何合法的过程名。注意动态链接库的入口处(entry points)区分大小写。
Lib 必需的。指明包含所声明过程的动态链接库或代码资源。所有声明都需要Lib 子句。
libname 必需的。包含所声明的过程动态链接库名或代码资源名。
Alias 可选的。表示将被调用的过程在动态链接库 (DLL)
中还有另外的名称。当外部过程名与某个关键字重名时,就可以使用这个参数。当动态链接库的过程与同一范围内的公用变量、常数或任何其它过程的名称相同时,也可以使用
Alias。如果该动态链接库过程中的某个字符不符合动态链接库的命名约定时,也可以使用 Alias。
aliasname 可选的。动态链接库或代码资源中的过程名。如果首字符不是数字符号 (#),则
aliasname 是动态链接库中该过程的入口处的名称。如果首字符是
(#),则随后的字符必须指定该过程的入口处的顺序号。
arglist 可选的。代表调用该过程时需要传递的参数的变量表。
type 可选的。Function 过程返回值的数据类型;可以是 Byte、布尔、Integer、Long、Currency、Single、Double、Decimal(目前尚不支持)、Date、String(只支持变长)或 Variant,用户定义类型,或对象类型。
arglist 参数的语法以及语法各个部分如下:
[Optional] [ByVal | ByRef] [ParamArray] varname[( )] [Astype]
php不支持函数重载
但是可以配合其他的几个内置函数来实现这个功能
func_get_arg() 获取传入的参数
func_num_args() 获取参数数量
function getUser() {
$param = func_get_arg(0);
if(is_array($param)) {
} elseif(is_int($param)) {
} elseif(is_string($param)) {
} else {
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)