PHP(全称:PHP:Hypertext Preprocessor,即”PHP:超文本预处理器”)是一种通用开源脚本语言。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
PHP书写规范
任何一门语言都有自己独特的书写规则,接下来我们就来了解一下PHP的魅力。
PHP片段四种表示形式
PHP片段的表现形式有以下四种,不过我们一般都用第一种。
- 标准tags:
<?php ?>
- short tags:
<? ?>
需要在php.ini中设置short _open_tag=on,默认是on - asp tags:
<% %>
需要在php.ini中设置asp_tags=on,默认是off - script tags:
<script language=”php”></script>
PHP注释
PHP注释有以下三种
- 单行注释 使用//或者#之后的代码将不起作用
- 多行注释
/*这里的代码将被注释*/
PHP定界符
Heredoc技术。可用来输出大段的html和javascript脚本
1、开始标记和结束标记使用相同的字符串,通常以大写字母来写。
2、开始标记后不能出现空格或多余的字符。
3、结束标记必须顶头写,不能有缩进和空格,且在结束标记末尾要有分号 。
4、位于开始标记和结束标记之间的变量可以被正常解析,但是函数则不可以。在heredoc中,变量不需要用连接符.或,来拼接 。
例如:
<?php
$str= <<<EOT
<body>
<!--12321-->
Hello,{$name}!
Hello,$name!
</body>
EOT;
print $str;
//结束放在行首,后面不能有空格,定界符结束下一行必定要有内容
?>
结果
<body>
<!--12321-->
Hello,浅水游!
Hello,浅水游!
</body>
Nowdoc技术,其用法和heredoc相同,不同的是Nowdoc 结构是类似于单引号字符串的。nowdoc中不进行解析操作。这种结构很适合用于嵌入PHP代码或其它大段文本而无需对其中的特殊字符进行转义。与 SGML 的 结构是用来声明大段的不用解析的文本类似,nowdoc 结构也有相同的特征。
一个 nowdoc 结构也用和 heredocs 结构一样的标记 <<<, 但是跟在后面的标识符要用单引号括起来,即 <<<‘EOT’。
例如:
<?php
$name = '浅水游';
<!--下面<<<EOT后面不能有空格-->
$str= <<<'EOT'
<body>
<!--12321-->
Hello,{$name}!
Hello,$name!
</body>
EOT;
print $str;
?>
结果:
<body>
<!--12321-->
Hello,{$name}!
Hello,$name!
</body>
很容易注意到Nowdoc没有对变量$name进行解析,原代码输出。
PHP变量命名规则
常量名 类常量建议全大写,单词间用下划线分隔 MIN_WIDTH
变量名建议用下划线方式分隔 $var_name
函数名建议用驼峰命名法 varName
定界符建议全大写 <<<DING, <<<'DING'
文件名建议全小写和下划线、数字 func_name.php
私有属性名、方法名建议加下划线 private $_name _func
接口名建议加I_ interface I_Name
大小写区分情况
- 类名、方法名、属性名、函数名:不区分大小写
- 变量名、常量名、元素下标:区分大小写
<?php
Class A{
public function show(){
echo 'sdsds';
}
}
$obj=new A();
$obb=new a();
$obj->show();
$obb->Show();
?>
结果:
sdsdssdsds
转义
PHP单引号及双引号均可以修饰字符串类型的数据,如果修饰的字符串中含有变量(例$name);最大的区别是: 双引号会替换变量的值,而单引号会把它当做字符串输出。
例如:
<?php
$name="string";
echo " 字符串" . '$name';
echo "字符串" . "$name";
?>
结果:
字符串$name字符串string
PHP中双引号的转义字符有
" \n" ==>换行
"\r"==>回车
"\t"==>水平制表符
"\\"==> 反斜杠
"\$" ==>美元符号
" \' "==>单引号
" \" " ==>双引号
" \[0-7]{1,3} " 正则表达式匹配一个八进制符号表示的字符
" \x[0-9A-Fa-f]{1,2} " 正则表达式匹配一个十六进制符号表示的字符
PHP中单引号只转义单双引号
<?php
print 'I\'m m just ducky.';
print 'I\"m m just ducky.';
?>
结果:
I'm m just ducky.I\"m m just ducky.
小知识:
1、由于PHP将试图找出那些需要将其值插入到双引号内的变量,所以从理论上讲,使用单引号要快一些。但是,如果需要打印一个变量的值,则必须使用双引号。
2、因为有效的HTML常常包括许多用双引号括住的属性,所以当利用PHP打印HTML时,使用单引号最容易。
echo '<table width="200" border="1" cellspacing="5" cellpadding="2" align="center">';
如果想使用双引号打印出上面这段HTML代码,将不得不对字符串中的所有双引号进行转义,所以相对来说较麻烦。
闲言碎语
到此,我能想到的所有PHP书写规范已经总结完毕,可能有所遗漏,如何我发现的话会补上,当然也希望各位能帮我找出来,谢谢。