
它可嵌入到HTML中,尤其适合web开发。
PHP(外文名:PHP:HypertextPreprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
在你不想让别人直接进入的网页开头加一段代码:
session_start(); //打开SESSION。
/
定点提示跳转
/
function jian($ce,$dizhi) {
echo ("<script type='text/javascript'> alert('{$ce}');location=('{$dizhi}');</script>");
exit;
} //第一个参数是提示信息,第二个参数是跳转地址
if ($_SESSION["name"] == "") {
jian('对不起,你没有登陆,无权访问!','loginphp');
}
然后在你登陆处理页面(就是登陆后验证用户的页面),登陆成功后,跳转页面前加一句:$_SESSION["name"] = $name;
PHP程序员岗位职责:
1、负责协助技术总监进行技术评测,bug处理,代码开发;
2、负责网站数据库、栏目、程序模块的设计与开发;
3、负责根据公司要求进行erp、oa、crm系统等项目开发;
4、按时按质完成公司下达程度开发、系统评测等工作任务;
5、定期维护网站程序,处理反馈回来的系统bug;
6、网站程序开发文档的编写。
PHP程序员岗位要求:
1、良好的代码习惯,要求结构清晰、命名规范、逻辑性强、代码冗余率低;
2、熟悉Mysql,有较为熟练地掌握mysql语言及编写存储过程、触发器等数据库开发的能力;
3、精通PHP语言,精通CGI标准和>
4、熟练掌握javascript、divcss等web前端布局及多浏览器兼容相关技术;
5、英文水平过硬,能基本不借助字典快速阅读英文文档;
6、熟练使用Linux或UNIX系统,熟悉在Linux、UNIX下配置phpmysql的运行环境;
7、有良好的沟通、协调能力和学习能力,具备良好的团队合作精神,对工作积极严谨踏实,能承受较大的工作压力。
PHP程序员发展方向:
程序员-系统分析员-架构师-技术经理-CTO;
程序员-项目组长-项目经理-项目总监-CTO;
程序员-产品设计师-产品经理-CTO。
1 引言… 2
2 适用范围… 2
3 标准化的重要性和好处… 3
4 PHP编码规范与原则… 3
41 代码标记… 3
42 注释… 3
43 书写规则… 4
431 缩进… 4
432 大括号{}、if和switch 4
433 运算符、小括号、空格、关键词和函数… 5
434 函数定义… 6
435 引号… 6
436 多语言问题… 7
44 命名原则… 8
441 变量、对象、函数名… 8
442 常量… 8
45 变量的初始化与逻辑检查… 8
46 安全性… 9
47 兼容性… 9
48 代码重用… 10
49 其他细节问题… 10
491 包含调用… 10
492 错误报告级别… 11
5 数据库设计… 11
51 字段… 11
511 表和字段命名… 11
512 字段结构… 11
52 SQL语句… 12
53 性能与效率… 13
531 定长与变长表… 13
532 运算与检索… 13
533 结构优化与索引优化… 14
534 查询优化… 14
535 兼容性问题… 16
6 模板设计… 16
61 代码标记… 16
62 书写规则… 16
621 HTML 16
622 变量… 16
623 语言元素… 17
624 缩进… 17
7 文件与目录… 17
71 文件命名… 17
72 目录命名… 18
73 空目录索引… 18
1 引言
本规范由编程原则组成,融合并提炼了开发人员长时间积累下来的成熟经验,意在帮助形成良好一致的编程风格。以达到事半功倍的效果,如果有需要本文档会不定期更新。
版权: 陕西玖肆陆陆网络科技有限公司,保留所有权利
最后更新日期:年11月20日 2006
2 适用范围
如无特殊说明,以下规则要求完全适用于phpcms项目,同时也可大部分适用于公司其他PHP项目。
3 标准化的重要性和好处
当一个软件项目尝试着遵守公共一致的标准时,可以使参与项目的开发人员更容易了解项目中的代码、弄清程序的状况。使新的参与者可以很快的适应环境,防止部分参与者出于节省时间的需要,自创一套风格并养成终生的习惯,导致其它人在阅读时浪费过多的时间和精力。而且在一致的环境下,也可以减少编码出错的机会。缺陷是由于每个人的标准不同,所以需要一段时间来适应和改变自己的编码风格,暂时性的降底了工作效率。从使项目长远健康的发展以及后期更高的团队工作效率来考虑暂时的工作效率降低是值得的,也是必须要经过的一个过程。标准不是项目成功的关键,但可以帮助我们在团队协作中有更高的效率并且更加顺利的完成既定的任务。
1 程序员可以了解任何代码,弄清程序的状况
2 新人可以很快的适应环境
3 防止新接触PHP的人出于节省时间的需要,自创一套风格并养成终生的习惯
4 防止新接触PHP的人一次次的犯同样的错误
5 在一致的环境下,人们可以减少犯错的机会
6 程序员们有了一致的敌人
4 PHP编码规范与原则
41代码标记
PHP程序可以使用或来界定 PHP 代码,在HTML页面中嵌入纯变量时,可以使用这样的形式。
近年来PHP开发组一直倡导代码规范化和标准化,未来版本PHP可能会开始不建议使用甚至取消和这种速记形式,因此为了加强程序兼容性,在发布之前我们将统一把
42注释
注释是对于那些容易忘记作用的代码添加简短的介绍性内容。请使用 C 样式的注释“”和标准 C++ 注释“//”。
程序开发中难免留下一些临时代码和调试代码,此类代码必须添加注释,以免日后遗忘。所有临时性、调试性、试验性的代码,必须添加统一的注释标记“//debug”并后跟完整的注释信息,这样可以方便在程序发布和最终调试前批量检查程序中是否还存在有疑问的代码。例如:
$num = 1;
$flag = TRUE; //debug 这里不能确定是否需要对$flag进行赋值
if(empty($flag)) {
//Statements
}
43书写规则
431 缩进
每个缩进的单位约定是一个TAB(8个空白字符宽度),需每个参与项目的开发人员在编辑器(UltraEdit、EditPlus、ZendStudio等)中进行强制设定,以防在编写代码时遗忘而造成格式上的不规范。
本缩进规范适用于PHP、JavaScript中的函数、类、逻辑结构、循环等。
432 大括号{}、if和switch
首括号与关键词同行,尾括号与关键字同列;
if结构中,if和elseif与前后两个圆括号同行,左右各一个空格,所有大括号都单独另起一行。另外,即便if后只有一行语句,仍然需要加入大括号,以保证结构清晰;
switch结构中,通常当一个case块处理后,将跳过之后的case块处理,因此大多数情况下需要添加break。break的位置视程序逻辑,与case同在一行,或新起一行均可,但同一switch体中,break的位置格式应当保持一致。
以下是符合上述规范的例子:
If ($condition)
{
switch ($var)
{
case 1: echo ‘var is 1’; break;
case 2: echo ‘var is 2’; break;
default: echo ‘var is neither 1 or 2’; break;
}
}
else
{
switch ($str)
{
case ‘abc’:
$result = ‘abc’;
break;
default:
$result = ‘unknown’;
break;
}
}
433 运算符、小括号、空格、关键词和函数
每个运算符与两边参与运算的值或表达式中间要有一个空格,唯一的特例是字符连接运算符号两边不加空格;
左括号“(” 应和函数关键词紧贴在一起,除此以外应当使用空格将“(”同前面内容分开;
右括号“)”除后面是“)”或者“”以外,其他一律用空格隔开它们;
除字符串中特意需要,一般情况下,在程序以及HTML中不出现两个连续的空格;
任何情况下,PHP程序中不能出现空白的带有TAB或空格的行,即:这类空白行应当不包含任何TAB或空格。同时,任何程序行尾也不能出现多余的TAB或空格。多数编辑器具有自动去除行尾空格的功能,如果习惯养成不好,可临时使用它,避免多余空格产生;
每段较大的程序体,上、下应当加入空白行,两个程序块之间只使用1个空行,禁止使用多行。
程序块划分尽量合理,过大或者过小的分割都会影响他人对代码的阅读和理解。一般可以以较大函数定义、逻辑结构、功能结构来进行划分。少于15行的程序块,可不加上下空白行;
说明或显示部分中,内容如含有中文、数字、英文单词混杂,应当在数字或者英文单词的前后加入空格。
根据上述原则,以下举例说明正确的书写格式:
$result = (($a + 1) 3 / 2 + $num))’Test’;
$condition func1($var) : func2($var);
$condition $long_statement
: $another_long_statement;
if ($flag)
{
//Statements
//More than 15 lines
}
Showmessage(‘请使用 restorephp 工具恢复数据。’);
434 函数定义
l 参数的名字和变量的命名规范一致;
l 函数定义中的左小括号,与函数名紧挨,中间无需空格;
l 开始的左大括号另起一行;
l 具有默认值的参数应该位于参数列表的后面;
l 函数调用与定义的时候参数与参数之间加入一个空格;
l 必须仔细检查并切实杜绝函数起始缩进位置与结束缩进位置不同的现象。
例如,符合标准的定义:
function authcode($string, $operation, $key = '')
{
if($flag)
{
//Statement
}
//函数体
}
不符合标准的定义:
function authcode($string,$operation,$key = '') {
//函数体
}
435 引号
PHP中单引号和双引号具有不同的含义,最大的几项区别如下:
单引号中,任何变量($var)、特殊转义字符(如“\t \r\n”等)不会被解析,因此PHP的解析速度更快,转义字符仅仅支持“\’”和“\\”这样对单引号和反斜杠本身的转义;
双引号中,变量($var)值会代入字符串中,特殊转义字符也会被解析成特定的单个字符,还有一些专门针对上述两项特性的特殊功能性转义,例如“\$”和“{$array[‘key’]}。这样虽然程序编写更加方便,但同时PHP的解析也很慢;
数组中,如果下标不是整型,而是字符串类型,请务必用单引号将下标括起,正确的写法为$array[‘key’],而不是$array[key],因为不正确的写法会使PHP解析器认为key是一个常量,进而先判断常量是否存在,不存在时才以“key”作为下标带入表达式中,同时出发错误事件,产生一条Notice级错误。
因此,在绝大多数可以使用单引号的场合,禁止使用双引号。依据上述分析,可以或必须使用单引号的情况包括但不限于下述:
l 字符串为固定值,不包含“\t”等特殊转义字符;
l 数组的固定下标,例如$array[‘key’];
l 表达式中不需要带入变量,例如$string = ‘test’;,而非$string = “test$var”;
例外的,在正则表达式(用于preg_系列函数和ereg系列函数)中,phpcms全部使用双引号,这是为了人工分析和编写的方便,并保持正则表达式的统一,减少不必要的分析混淆。
数据库SQL语句中,所有数据都不得加单引号,但是在进行sql查询之前都必须经过intval函数处理;所有字符串都必须加单引号,以避免可能的注入漏洞和SQL错误。正确的写法为:
$catid = intval($catid);
SELECT FROM phpcms_member WHERE username=’$_username’ ANDcatid=$catid;
所有数据在插入数据库之前,均需要进行addslashes()处理,以免特殊字符未经转义在插入数据库的时候出现错误。phpcms中如果已经引入了文件commonincphp,则所有通过 GET, POST,FILE,取得的变量默认情况下已经使用了addslashes()进行了转义,不必重复进行。如果数据处理必要(例如用于直接显示),可以使用stripslashes() 恢复,但数据在插入数据库之前必须再次进行转义。
缓存文件中,一般对缓存数据的值采用 addcslashes($string, '\'\\')进行转义。
436
44命名原则
命名是程序规划的核心。古人相信只要知道一个人真正的名字就会获得凌驾于那个人之上的不可思议的力量。只要你给事物想到正确的名字,就会给你以及后来的人带来比代码更强的力量。
名字就是事物在它所处的生态环境中一个长久而深远的结果。总的来说,只有了解系统的程序员才能为系统取出最合适的名字。如果所有的命名都与其自然相适合,则关系清晰,含义可以推导得出,一般人的推想也能在意料之中。
就一般约定而言,类、函数和变量的名字应该总是能够描述让代码阅读者能够容易的知道这些代码的作用。形式越简单、越有规则,就越容易让人感知和理解。应该避免使用模棱两可,晦涩不标准的命名。
441 变量、对象、函数名
变量、对象、函数名一律为小写格式,除非必要,单词之间一般不使用下划线“_”进行分割;
以标准计算机英文为蓝本,杜绝一切拼音、或拼音英文混杂的命名方式;
变量命名只能使用项目中有据可查的英文缩写方式,例如可以使用$data而不可使用$data1、$data2这样容易产生混淆的形式,应当使用$articledata、$userdata这样一目了然容易理解的形式;
可以合理的对过长的命名进行缩写,例如$bio($biography),$tpp($threadsPerPage),前提是英文中有这样既有的缩写形式,或字母符合英文缩写规范;
必须清楚所使用英文单词的词性,在权限相关的范围内,大多使用$enable、$is、的形式,前者后面接动词,后者后面接形容词。
442 常量
常量应该总是全部使用大写字母命名,少数特别必要的情况下,可使用划线来分隔单词;
PHP 的内建值 TRUE、FALSE 和NULL必须全部采用大写字母书写。
45变量的初始化与逻辑检查
任何变量在进行累加、直接显示或存储前必需进行初使化,例如:
$number = 0; //数值型初始化
$string = ‘’; //字符串初始化
$array = array(); //数组初始化
判断一个无法确定(不知道是否已被赋值)的变量时,可用empty()或isset(),而不要直接使用if($switch)的形式,除非你确切的知道此变量一定已经被初始化并赋值。
empty()和isset()的区别为:
l bool empty(mixed var)
n 如果 var 是非空或非零的值,则 empty() 返回FALSE。换句话说,""、0、"0"、NULL、FALSE、array()、var $var;以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE。
l bool isset(mixed var[, mixed var[, ]])
n 如果 var 存在则返回 TRUE,否则返回 FALSE。
n 如果已经使用 unset() 释放了一个变量之后,它将不再是 isset()。若使用 isset() 测试一个被设置成 NULL的变量,将返回 FALSE。同时要注意的是一个 NULL 字节("\0")并不等同于 PHP 的 NULL 常数。
判断一个变量是否为数组,请使用is_array(),这种判断尤其适用于对数组进行遍历的 *** 作,例如foreach(),因为如果不事先判断,foreach()会对非数组类型的变量报错;
判断一个数组元素是否存在,可使用isset($array[‘key’]),也可使用empty(),两者异同见上。
46安全性
PHP中的变量不并不像C语言那样需要事先声明,解释器会在第一次使用时自动创建他们,同样类型也不需要指定,解释器会根据上下文环境自动确定。从开发人员的角度来看,这无疑是一种极其方便的处理方法。一个变量被创建了,就可以在程序中的任何地方使用。这导致的结果就是开发人员工经常不注意初始化变量。因此,为了提高程序的安全性,我们不能相信任何没有明确定义的变量。所有的变量在定义使用前要初使化以防止恶意构造提交的变量覆盖程序中使用的变量。
细节可以阅读(>
首先你说“请问输出要这样用 ,直接x,y不行吗?”,回答是否定的!
在PHP中面向对象有它的特点,不和JAVA一样!在JAVA中是可以的!在PHP中$this指代当前对象的引用,并且必须在实例化了对象的情况下才能用$this来访问对象的非静态属性!
而且在访问静态成员时要用:: *** 作符,用法为 类名::静态方法或者属性
还有一个很重要的,也是很容易不好把握的,就是“在静态的方法中是不能访问非静态的成员的(即在静态的方法中不能$this)!”
不过在方法的参数中可以用$x,$y,作为参数,不是类的属性
以上就是关于高分求解全部的内容,包括:高分求解、什么是ftp,http,SQL,php,NAT、PHP程序段可以存在的位置有()等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)