一、PHP介绍
PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。
语法吸收混合了C、Java、Perl以及PHP自创的语法特点,利于学习,使用广泛,主要适用于Web开发领域。它可以比CGI或者Perl更快速地执行动态网页。
用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多。
PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
PHP是B/S(Browser/Server,浏览器/服务器)体系结构,属于三层结构。服务器启动以后,用户可以不使用客户端软件,只使用浏览器即可访问,既保持了图形化的用户界面,又大大减少了应用的维护量。
PHP新特性
· PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。
· PHP可以比CGI或者Perl更快速的执行动态网页。(动态页面方面,与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成htmL标记的CGI要高许多;PHP具有非常强大的功能,所有的CGI的功能PHP都能实现。)
· PHP支持几乎所有流行的数据库以及操作系统。
· 最重要的是PHP可以用C、C++进行程序的扩展。
PHP新的对象模型
1)构造函数和析构函数
在 PHP4 中,当函数与对象同名时,这个函数将成为该对象的构造函数,并且在 PHP4 中没有析构函数的概念。在 PHP5 中,构造函数被统一命名为 __construct,并且引入了析构函数的概念,被统一命名为 __destruct。
2)对象的引用
在PHP4中,传递变量给一个函数或方法,实际是把这个变量做了一次复制,也就意味着你传给函数或方法的是这个变量的一个副本,除非你使用了引用符号“&;” 来声明是要做一个引用,而不是一个 Copy。在 PHP5中,对象总是以引用的形式存在的,对象中的赋值操作同样也都是一个引用操作。
3)对象的克隆
当一个对象始终以引用的形式来被调用时,如果我想得到该对象的一个副本,该怎么办呢?PHP5 提供了一个新的功能,就是对象的克隆,语法为 __clone。
4)抽象类
· 抽象类不能被实例化。
· 抽象类与其它类一样,允许定义变量及方法。
· 抽象类同样可以定义一个抽象的方法,抽象类的方法不会被执行,不过将有可能会在其派生类中执行。
5)对象中的私有、公共及受保护模式
6)接口 (Interfaces)
7)__call
PHP5 的对象新增了一个专用方法 __call(),这个方法用来监视一个对象中的其它方法。如果你试着调用一个对象中不存在的方法,__call 方法将会被自动调用。
8)__set 和 __get
这是一个很棒的方法,__set 和 __get 方法可以用来捕获一个对象中不存在的变量和方法。
9)类型指示
在 PHP5 中,你可以在对象的方法中指明其参数必须为另一个对象的实例。
10)静态成员
静态成员和静态方法在面象对象编程的术语中被称作 “类方法(class methods)” 和 “类变量(class variables)”。“类方法” 在一个对象没有实例化前允许被调用。同样,“类变量” 在一个对象没有实例化前可以被独立操作控制(不需要用一个对象的方法来控制)。
PHP技术应用
1)伪静态
2)静态页面生成
3)数据库缓存
4)过程缓存
5)div+cssw3c标准
6)大负荷
7)分布式
8)Flex
9)桌面程序应用(不擅长)
10)支持MVC模型
11)Smarty模版引擎
12)多种框架
二、PHP开发环境搭建
参考文章:http://www.ittxx.cn/view/79
PHP的安装和配置,扩展的安装参考官网:http://php.net/manual/zh/install.php
三、语法和标记注释
1.语法
PHP 脚本可放置于文档中的任何位置。
PHP 脚本以 <?php 开头,以 ?> 结尾:
<?php // 此处是 PHP 代码 ?>
PHP 文件的默认文件扩展名是 ".php"。
PHP 文件通常包含 HTML 标签以及一些 PHP 脚本代码。
下面的例子是一个简单的 PHP 文件,其中包含了使用内建 PHP 函数 "echo" 在网页上输出文本 "Hello World!" 的一段 PHP 脚本:
<!DOCTYPE html> <html> <body> <h1>我的第一张 PHP 页面</h1> <?php echo "Hello World!"; ?> </body> </html>
注释:PHP 语句以分号结尾(;)。PHP 代码块的关闭标签也会自动表明分号(因此在 PHP 代码块的最后一行不必使用分号)。
2.标记风格
PHP标记风格有4种,如下:
1)标准风格:<?php echo “Hello,world”; ?>
2)脚本风格:<script language=”php”> echo ‘Hello,world’; </script>
3)简短风格:<? echo “Hello,world”; ?>
4)ASP风格:<% echo “Hello,world”; %>
说明:如果使用3或4风格,需要在php.ini中设置如下:
Short_open_tag=On asp_tags=On
3.PHP注释
PHP注释有3种,如下:
单行注释: //注释内容
多行注释: /* …注释内容…*/ (注意多行注释不允许嵌套操作)
Shell风格注释: #注释内容 (注意单行注释内容中不能有’?>’ )
例子:
/** *这是一个什么文件 * *此文件程序用来做什么的(详细说明,可选。)。 * @author richard<mail@163.com> * @version $Id$ * @since 1.0 */
以上注释用于文件头部,函数头部,类的头部注释。如果是单行注释直接在语句末尾加上
如:$this->createDataFiles(); // 生成数据文件
4.指令分隔符;
同 C 或 Perl 一样,PHP 需要在每个语句后用分号结束指令。一段 PHP 代码中的结束标记隐含表示了一个分号;在一个 PHP 代码段中的最后一行可以不用分号结束。如果后面还有新行,则代码段的结束标记包含了行结束。
<?php echo "This is a test"; ?> <?php echo "This is a test" ?> <?php echo 'We omitted the last closing tag';
提示:
文件末尾的 PHP 代码段结束标记可以不要,有些情况下当使用 include 或者 require 时省略掉会更好些,这样不期望的空白符就不会出现在文件末尾,之后仍然可以输出响应标头。在使用输出缓冲时也很便利,就不会看到由包含文件生成的不期望的空白符。
四、输出语句
PHP的输出语句有以下几种:echo,print,printf,sprintf,print_r下面对这几种语句进行说明和对比。
1.echo
echo 是一个语言结构,有无括号均可使用:echo 或 echo()。是程序设计中最常用的一种输出方法,
语法: echo "string arg1,string [arg2]...."。
· echo语句将传入的参数arg1进行输出。
· 由于它本身不是一个函数,没有返回值。
· echo 后面能连续输出多个字符串,用逗号分开。例:echo $str1 , $str2,$arr[3];
· 连续输出的多个字符串也可以用"."连接起来,成为一个新的字符串。例:echo $str1 . $str2;
2.print
print 也是语言结构,有无括号均可使用:print 或 print()。只能输出一个字符串,可以有返回值,
语法:print(string arg) 语句执行成功返回1,失败返回0。
echo和print对比:
1)但是echo速度会比print快一点点。因为它不是一个函数,没有返回值。print有返回值为1。如: $x=echo time();//错误的 $x=print time(); //正确
2)echo 可以连续输出多个字符串,而print不行。如:print $str1 , $str2;是错误的。
3)echo与print输出的都是没有格式化的字符串。
4)echo与print输出的字符串中都可以包含HTML标记,如:
echo "<h2>PHP is fun!</h2>"; print "<h2>PHP is fun!</h2>";
3.printf()和sprintf()
它们都是函数,是输出格式化的字符串。
sprintf并不是直接输出字符串到网页上,而是返回格式化的字符串。可以赋值给变量。
如:$a= sprintf(“%s”,$string);
printf函数语法如下:void printf(format,arg1,arg2,arg++)
sprintf函数语法如下:string sprintf (format arg1,arg2,arg++)
例:
$string= 15; printf(“%c”,$string); //将整形转换层ASCII字符,输出。 $a=sprintf(“%c”,$string); //格式化并赋值给变量a,输出15
参数 format 是转换的格式,以百分比符号 (“%”) 开始到转换字符结束。下面是可能的 format 值:
%% – 返回百分比符号
%b – 二进制数
%c – 依照 ASCII 值的字符
%d – 带符号十进制数
%e – 可续计数法(比如 1.5e+3)
%u – 无符号十进制数
%f – 浮点数(local settings aware)
%F – 浮点数(not local settings aware)
%o – 八进制数
%s – 字符串
%x – 十六进制数(小写字母)
%X – 十六进制数(大写字母)
arg1, arg2, arg++ 等参数将插入到主字符串中的百分号 (%) 符号处。该函数是逐步执行的,在第一个 % 符号中,插入 arg1,在第二个 % 符号处,插入 arg2,依此类推。如果 % 符号多于 arg 参数,则您必须使用占位符。占位符被插入 % 符号之后,由数字和 “$” 组成。可使用数字指定显示的参数,详情请看例子。例子:
printf("My name is %s %s。","xshell", "net"); // My name is xshell net。 printf("My name is %1$s %1$s","xshell", "net"); // 在s前添加1$或2$.....表示后面的参数显示的位置,此行输出 My name is xshell xshell 只显示第一个参数两次。 printf("My name is %2$s %1$s","xshell", "net"); // My name is net xshell
如果你只想输出静态文件,那么echo()和print()都可以;但是如果你想把一个动态数据推入到一个原本是静态的文本中,则你得使用printf()和spintf()。
关于printf()
前面说到如果你想把一个动态数据推入到一个原本是静态的文本中,这是什么意思呢?
实例说明一切:
printf(Bar inventory:%d bottles of tonic water.,200) //Bar inventory:100 bottles of tonic water.
其中%d是一个占位符,告诉程序这将用一个类型为整形的变量来替代(后面的200)。
当然如果后面的200是一个小数,则会取最接近的整数。
4.print_r()
print_r函数打印关于变量的易于理解的信息。输出数组、对象等复合数据类型。
语法:mixed print_r ( mixed $expression [, bool return ] )
如果变量是string , integer or float , 将会直接输出其值,如果变量是一个数组,则会输出一个格式化后的数组,便于阅读,也就是有key和value对应的那种格式。对于object对象类同。print_r有两个参数,第一个是变量,第二个可设为true,如果设为true,则会返回字符串,否则返回布尔值true,默认是false。
例子:
$a="xshell"; $c = print_r($a); echo $c; // $c的值是true或1 $c = print_r($a, true); echo $c; // $c的值是字符串xshell
输出:
xshell1xshell
sandbox> exited with status 0
5.var_dump()
功能: 输出变量的内容、类型或字符串的内容、类型、长度。常用来调试。例
$a=100; var_dump($a); //int(100) $a=100.356; var_dump($a); //float(100.356) $a = array (1, 2, array ("a", "b", "c")); var_dump($a); //array(3)
输出:
int(100)
float(100.356)
array(3) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
array(3) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[2]=>
string(1) "c"
}
}
五、PHP语言书写规范
请参考网址:https://ittxx.cn/view/256
转载请注明: ITTXX.CN--分享互联网 » php基础(一)--安装、标记、注释、输出语句、书写规范
最后更新:2019-02-28 09:36:10