华育国际php入门之道

很多人在初接触到PHP的学习后,会不知从何入手。新的一年即将来临,为方便新手们的快速学习,华育国际给大家准备了一些新手入门PHP之道:

编程范式

PHP是一个灵活的动态语言,支持多种编程技巧。这几年一直不断的发展,重要的里程碑包含PHP5.0()增加了完善的面向对象模型,PHP5.3()增加了匿名函数与命名空间以及PHP5.4()增加的traits。

面向对象编程

PHP拥有完整的面向对象编程的特性,包括类,抽象类,接口,继承,构造函数,克隆和异常等。

函数式编程FunctionalProgramming

PHP支持函数是”第一等公民”,即函数可以被赋值给一个变量,包括用户自定义的或者是内置函数,然后动态调用它。函数可以作为参数传递给其他函数(称为高阶函数),也可以作为函数返回值返回。

PHP支持递归,也就是函数自己调用自己,但多数PHP代码使用迭代。

自从PHP5.3()之后开始引入对闭包以及匿名函数的支持。

PHP5.4增加了将闭包绑定到对象作用域中的特性,并改善其可调用性,如此即可在大部分情况下使用匿名函数取代一般的函数。

元编程

PHP通过反射API和魔术方法,可以实现多种方式的元编程。开发者通过魔术方法,如__get(),__set(),__clone(),__toString(),__invoke(),等等,可以改变类的行为。Ruby开发者常说PHP没有method_missing方法,实际上通过__call()和__callStatic()就可以完成相同的功能。

命名空间

如前所述,PHP社区已经有许多开发者开发了大量的代码。这意味着一个类库的PHP代码可能使用了另外一个类库中相同的类名。如果他们使用同一个命名空间,那将会产生冲突导致异常。

命名空间解决了这个问题。如PHP手册里所描述,命名空间好比操作系统中的目录,两个同名的文件可以共存在不同的目录下。同理两个同名的PHP类可以在不同的PHP命名空间下共存,就这么简单。

因此把你的代码放在你的命名空间下就非常重要,避免其他开发者担心与第三方类库冲突。

PSR-4提供了一种命名空间的推荐使用方式,它提供一个标准的文件、类和命名空间的使用惯例,进而让代码做到随插即用。

年10月,PHP-FIG废弃了上一个自动加载标准:PSR-0,而采用新的自动加载标准PSR-4。但PSR-4要求PHP5.3以上的版本,而许多项目都还是使用PHP5.2,所以目前两者都能使用。如果你在新应用或扩展包中使用自动加载标准,应优先考虑使用PSR-4。

PHP标准库

PHP标准库(SPL)随着PHP一起发布,提供了一组类和接口。包含了常用的数据结构类(堆栈,队列,堆等等),以及遍历这些数据结构的迭代器,或者你可以自己实现SPL接口。

命令行接口

PHP是为开发Web应用而创建,不过它的命令行脚本接口(CLI)也非常有用。PHP命令行编程可以帮你完成自动化的任务,如测试,部署和应用管理。

CLIPHP编程非常强大,可以直接调用你自己的程序代码而无需创建Web图形界面,需要注意的是不要把CLIPHP脚本放在公开的web目录下!

在命令行下运行PHP:

php-i

选项-i将会打印PHP配置,类似于phpinfo()函数。

选项-a提供交互式shell,和Ruby的IRB或python的交互式shell相似,此外还有很多其他有用的命令行选项。

接下来写一个简单的“Hello,$name”CLI程序,先创建名为hello.php的脚本:

?phpif($argc!=2){echo"Usage:phphello.php[name].\n";exit(1);}$name=$argv[1];echo"Hello,$name\n";

PHP会在脚本运行时根据参数设置两个特殊的变量,$argc是一个整数,表示参数个数,$argv是一个数组变量,包含每个参数的值,它的第一个元素一直是PHP脚本的名称,如本例中为hello.php。

命令运行失败时,可以通过exit()表达式返回一个非0整数来通知shell,常用的exit返回码可以查看列表.

运行上面的脚本,在命令行输入:

phphello.phpUsage:phphello.php[name]phphello.phpworldHello,world

Xdebug

合适的调试器是软件开发中最有用的工具之一,它使你可以跟踪程序执行结果并监视程序堆栈中的信息。Xdebug是一个php的调试器,它可以被用来在很多IDE(集成开发环境)中做断点调试以及堆栈检查。它还可以像PHPUnit和KCacheGrind一样,做代码覆盖检查或者程序性能跟踪。

如果你仍在使用var_dump()/print_r()调错,经常会发现自己处于困境,并且仍然找不到解决办法。这时,你该使用调试器了。

安装Xdebug可能很费事,但其中一个最重要的「远程调试」特性——如果你在本地开发,并在虚拟机或者其他服务器上测试,远程调试可能是你想要的一种方式。

通常,你需要修改你的ApacheVHost或者.htaccess文件的这些值:

php_valuexdebug.remote_host=..?.?php_valuexdebug.remote_port=

「remotehost」和「remoteport」这两项对应和你本地开发机监听的地址和端口。然后将你的IDE设置成「listenforconnections」模式,并访问网址:









































北京白癜风医院
北京白癜风医院



转载请注明:http://www.shhjfk.com/pxxx/4597.html