php代码规范的书籍,php基本代码规范——PSR-1

本文详细介绍了PHP代码的基本规范,包括使用<?php和<?=标签,源文件编码格式应为UTF-8无BOM,推荐每个源文件只做声明或副作用操作,命名空间和类遵循PSR-0标准,类名使用StudlyCaps,方法名使用camelCase,类常量全大写等。此外,还强调了文件的副作用,如输出、配置修改等不应与声明混合,并给出了示例说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基本代码规范

本节我们将会讨论一些基本的代码规范问题,以此作为将来讨论更高级别的代码分享和技术互用的基础。

RFC 2119中的必须(MUST),不可(MUST NOT),建议(SHOULD),不建议(SHOULD NOT),可以/可能(MAY)等关键词将在本节用来做一些解释性的描述。

1. 概述

源文件必须只使用 <?php 和 <?= 这两种标签。

源文件中php代码的编码格式必须只使用不带字节顺序标记(BOM)的UTF-8。

一个源文件建议只用来做声明(类(class),函数(function),常量(constant)等)或者只用来做一些引起副作用的操作(例如:输出信息,修改.ini配置等),但不建议同时做这两件事。

命名空间(namespace)和类(class) 必须遵守PSR-0标准。

类名(class name) 必须使用骆驼式(StudlyCaps)写法 (译者注:驼峰式(cameCase)的一种变种,后文将直接用StudlyCaps表示)。

类(class)中的常量必须只由大写字母和下划线(_)组成。

方法名(method name) 必须使用驼峰式(cameCase)写法(译者注:后文将直接用camelCase表示)。

2. 文件

2.1. PHP标签

PHP代码必须只使用长标签(<?php ?>)或者短输出式标签(= ?>);而不可使用其他标签。

2.2. 字符编码

PHP代码的编码格式必须只使用不带字节顺序标记(BOM)的UTF-8。

2.3. 副作用

一个源文件建议只用来做声明(类(class),函数(function),常量(constant)等)或者只用来做一些引起副作用的操作(例如:输出信息,修改.ini配置等),但不建议同时做这两件事。

短语副作用(side effects)的意思是 在包含文件时 所执行的逻辑与所声明的类(class),函数(function),常量(constant)等没有直接的关系。

副作用(side effects)包含但不局限于:产生输出,显式地使用require或include,连接外部服务,修改ini配置,触发错误或异常,修改全局或者静态变量,读取或修改文件等等

下面是一个既包含声明又有副作用的示例文件;即应避免的例子:

// 副作用:修改了ini配置

ini_set('error_reporting', E_ALL);

// 副作用:载入了文件

include "file.php";

// 副作用:产生了输出

echo "\n";

// 声明

function foo()

{

// 函数体

}

下面是一个仅包含声明的示例文件;即应提倡的例子:

// 声明

function foo()

{

// 函数体

}

// 条件式声明不算做是副作用

if (! function_exists('bar')) {

function bar()

{

// 函数体

}

}

3. 空间名(namespace)和类名(class name)

命名空间(namespace)和类(class)必须遵守 PSR-0.

这意味着一个源文件中只能有一个类(class),并且每个类(class)至少要有一级空间名(namespace):即一个顶级的组织名(vendor name)。

类名(class name) 必须使用StudlyCaps写法。

PHP5.3之后的代码必须使用正式的命名空间(namespace)

例子:

// PHP 5.3 及之后:

namespace Vendor\Model;

class Foo

{

}

PHP5.2.x之前的代码建议用伪命名空间Vendor_作为类名(class name)的前缀

// PHP 5.2.x 及之前:

class Vendor_Model_Foo

{

}

4. 类的常量、属性和方法

术语类(class)指所有的类(class),接口(interface)和特性(trait)

4.1. 常量

类常量必须只由大写字母和下划线(_)组成。

例子:

namespace Vendor\Model;

class Foo

{

const VERSION = '1.0';

const DATE_APPROVED = '2012-06-01';

}

4.2. 属性

本指南中故意不对$StulyCaps,$camelCase或者$unser_score中的某一种风格作特别推荐,完全由读者依据个人喜好决定属性名的命名风格。

但是不管你如何定义属性名,建议在一个合理的范围内保持一致。这个范围可能是组织(vendor)级别的,包(package)级别的,类(class)级别的,或者方法(method)级别的。

4.3. 方法

方法名则必须使用camelCase()风格来声明。

通达信行情API是金融数据提供商通达信(TongDaXin)为开发者和金融机构提供的接口服务,用于获取实时及历史的股票、期货、期权等金融市场数据。这个API允许用户在自己的应用程序中集成通达信的数据服务,实现个性化数据分析、交易策略开发等功能。 1. **API基本概念** - **API**:Application Programming Interface,应用程序编程接口,是软件之间交互的一种方式,提供预定义的函数和方法,使得其他软件能够调用特定功能。 - **通达信**:国内知名的金融终端软件提供商,提供股票、期货、基金等市场数据,以及交易服务。 2. **通达信API的功能** - **实时行情**:获取股票、期货、期权等市场的实时报价信息,包括最新价、涨跌额、涨跌幅、成交量等。 - **历史数据**:获取历史交易日的K线数据、分时数据、交易量等信息,支持自定义时间段查询。 - **深度数据**:获取买卖盘口的五档报价和成交量,有助于分析市场买卖意愿。 - **资讯信息**:获取公告、研报、新闻等市场资讯。 - **交易委托**:通过API进行交易下单、撤单等操作,实现自动化交易。 3. **TdxHqApi** - **TdxHqApi** 是通达信行情API的具体实现,它包含了调用通达信数据服务的各种函数和类,如获取股票列表、获取实时行情、获取历史数据等。 - 开发者需要按照API文档的指示,导入TdxHqApi库,然后通过调用相应的函数来获取所需数据。 4. **使用步骤** - **安装**:下载并安装通达信API的SDK,通常包括头文件和动态链接库。 - **初始化**:在代码中实例化API对象,进行连接设置,如服务器地址、端口号等。 - **连接**:连接到通达信服务器,进行身份验证。 - **数据请求**:调用对应的API函数,例如`GetS
内容概要:本文档是一份关于大数据开发的笔试题目集合,涵盖了多个计算机科学领域的知识点。主要内容包括:数组排序算法的应用,如给出了一段不完整的冒泡排序代码示例;二叉树的基本操作,包括普通二叉树的遍历方式(先序遍历),以及针对大规模数据(如一亿个节点)时避免服务器崩溃的优化策略——采用分布式计算思想将单棵大树拆分为多棵小树并行处理;人力资源系统的数据库设计方案,涉及到了员工信息存储所需的字段(如ID、姓名、工资、上级ID、层级)、展示公司内部架构的SQL语句(利用CTE公共表达式或者PL/SQL中的特定语法来构建递归查询),还有统计某个管理者所辖人数的方法论。 适合人群:正在准备大数据相关岗位面试的技术人员,尤其是那些希望加深对数据结构、算法以及数据库设计等方面理解的人群。 使用场景及目标:①帮助求职者熟悉常见的编程技巧与理论知识,提高解决实际问题的能力;②为从事企业级应用开发工作的程序员提供参考案例,以便更好地理解和实施复杂的数据管理和业务逻辑建模任务。 阅读建议:由于文档中包含了多种类型的题目,建议读者按照自己的薄弱环节选择重点复习的内容。对于排序算法部分,应该注意理解各种经典算法的工作机制及其优缺点;对于二叉树的问题,则要掌握不同遍历顺序的特点,并思考如何应对海量数据带来的挑战;最后,在研究HR系统相关的数据库设计时,除了要学会正确地创建表格外,还应学会运用适当的SQL语句来进行高效的数据检索和分析。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值