如何简写以下有规律的PHPwebstorm 代码简写?

{strTitle}
共 {intRecordSum} 条记录,{intPage}/{intPages} 页
[Ctrl+A 全选 注:]
您可能感兴趣的文章:
12345678910他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)PHP 保存xml 没有值 的标签 全部成了简写了 怎么让他不简写
[问题点数:20分]
PHP 保存xml 没有值 的标签 全部成了简写了 怎么让他不简写
[问题点数:20分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2017年1月 总版技术专家分月排行榜第三
2017年2月 PHP大版内专家分月排行榜第一2017年1月 PHP大版内专家分月排行榜第一
匿名用户不能发表回复!|Keyboard Shortcuts?
Next menu item
Previous menu item
Previous man page
Next man page
Scroll to bottom
Scroll to top
Goto homepage
Goto search(current page)
Focus search box
Change language:
Brazilian Portuguese
Chinese (Simplified)
这一部分对在PHP应用开发过程中需要和Mysql数据库交互时可用的选择进行一个简单介绍。
什么是API?
一个应用程序接口(Application Programming Interface的缩写),定义了类,方法,函数,变量等等一切
你的应用程序中为了完成特定任务而需要调用的内容。在PHP应用程序需要和数据库进行交互的时候所需要的API
通常是通过PHP扩展暴露出来(给终端PHP程序员调用)。
API可以是面向过程的,也可以是面向对象的。对于面向过程的API,我们通过调用函数来完成任务,而对于面向对象的API,
我们实例化类,并在实例化后得到的对象上调用方法。对于这两种接口而言,后者通常是首选的,因为它更加现代化,并且
给我们带来了良好的代码结构。
当构建一个需要连接到MySQL服务端的PHP应用的时候,有好几种API可供选择。此文档就是讨论这些可用的API并讨论如何为
你的应用选择一个最佳的解决方案。
什么是连接器?
在MySQL文档中,术语connector解释为“一段允许你的应用连接到MySQL数据库服务器的软件代码”。
MySQL提供了很多语言的连接器,其中包括PHP的。
在你的PHP应用需要和一个数据库服务器交互的时候,你需要书写PHP代码去完成“连接数据库服务器”,“查询数据库“以及其他数据库相关功能
等一系列活动。你的PHP应用将会使用提供这些API的软件,或者在需要的时候使用一些中间库,来处理你的应用和数据库服务器之间的交互。
这种软件通常被认为是连接器,它允许你的引用连接到数据库服务器。
什么是驱动?
驱动是一段设计用来于一种特定类型的数据库服务器进行交互的软件代码。驱动可能会调用一些库,比如MySQL客户端库或者MySQL Native驱动库。
这些库实现了用于和MySQL数据库服务器进行交互的底层协议。
通过一个例子数据库抽象层可以
使用多种特定数据库的驱动。其中一种驱动就是PDO MYSQL驱动,它就是与MySQL服务器之间的接口。
有时大家会不加区分的使用连接器和驱动这两个术语。在MySQL相关文档中"driver"术语被作为一个连接器包
中提供特定数据库部分的软件代码。
什么是扩展?
在PHP文档中你还会发现很多其他的扩展。PHP代码是由一个核心,一些可选扩展组成了核心功能。PHP
的MySQL相关扩展,比如mysqli,mysql都是基于PHP扩展框架实现的。
扩展一个典型的作用就是暴露一个API给PHP程序员,允许扩展自己的功能可以被程序员使用。当然,也有一部分基于PHP扩展框架
开发的扩展不会给PHP程序员暴露API接口。
比如说PDO MySQL驱动扩展,就没有向PHP程序员暴露API接口,但是向它上层的PDO层提供了一个接口。
术语API和扩展描述的不是同一类事物,因为扩展可能并不需要暴露一个API接口给程序员。
PHP中提供的用于MySQL的主要API是什么?
当考虑连接到MySQL数据库服务器的时候,有三种主要的API可供选择:
PHP的MySQL扩展
PHP的mysqli扩展
PHP数据对象(PDO)
三者都有各自的优缺点。下面的讨论就是为了对每种API的关键方面给出一个简短的介绍。
什么是PHP的MySQL扩展?
这是设计开发允许PHP应用与MySQL数据库交互的早期扩展。mysql扩展提供了一个面向过程
的接口,并且是针对MySQL4.1.3或更早版本设计的。因此,这个扩展虽然可以与MySQL4.1.3或更新的数据库服务端
进行交互,但并不支持后期MySQL服务端提供的一些特性。
如果你是使用MySQL4.1.3或更新的服务端版本,强烈建议你使用mysqli
扩展替代它。
mysql扩展的源代码在PHP扩展目录ext/mysql下。
对于mysql扩展的更多信息,请参阅。
什么是PHP的mysqli扩展?
mysqli扩展,我们有时称之为MySQL增强扩展,可以用于使用
MySQL4.1.3或更新版本中新的高级特性。mysqli扩展在PHP 5及以后版本中包含。
mysqli扩展有一系列的优势,相对于mysql扩展的提升主要有:
面向对象接口
prepared语句支持(译注:关于prepare请参阅mysql相关文档)
多语句执行支持
增强的调试能力
嵌入式服务支持
如果你使用MySQL4.1.3或更新版本,强烈建议你使用这个扩展。
在提供了面向对象接口的同时也提供了一个面向过程的接口。
mysqli扩展是使用PHP扩展框架构建的,它的源代码在PHP源码目录下的ext/mysqli中。
对于mysqli扩展的更多信息,请参阅。
什么是PDO?
PHP数据对象,是PHP应用中的一个数据库抽象层规范。PDO提供了一个统一的API接口可以使得你的PHP应用不去关心具体要
连接的数据库服务器系统类型。也就是说,如果你使用PDO的API,可以在任何需要的时候无缝切换数据库服务器,比如从Firebird
到MySQL,仅仅需要修改很少的PHP代码。
其他数据库抽象层的例子包括Java应用中的JDBC以及Perl中的DBI。
当然,PDO也有它自己的先进性,比如一个干净的,简单的,可移植的API,它最主要的缺点是会限制让你不能使用
后期MySQL服务端提供所有的数据库高级特性。比如,PDO不允许使用MySQL支持的多语句执行。
PDO是基于PHP扩展框架实现的,它的源码在PHP源码目录的ext/pdo下。
PDO的更多信息,请参阅。
什么是PDO的MySQL驱动器?
PDO的MySQL驱动并不是一套API,至少从PHP程序员的角度来看是这样的。实际上,PDO的MySQL驱动处于PDO自己的下层,
提供了特定的Mysql功能。程序员直接调用PDO的API,而PDO使用了PDO的MySQL驱动完成与MySQL服务器端的交互。
PDO的MySQL驱动是众多PDO驱动中的一个。其他可用的PDO驱动包括Firebird,PostgreSQL等等。
PDO的MySQL驱动是基于PHP扩展框架实现的。它的源码在PHP源码目录下的ext/pdo_mysql。
它没有向PHP程序员暴露API。
PDO的MySQL扩展的更多信息请参阅。
什么是PHP的MySQL Native 驱动?
为了与MySQL数据库服务端进行交互,mysql扩展,mysqli扩展,
PDO MySQL驱动都使用了实现了必要的协议的底层库。以前,可用的库只有MySQL客户端库和libmysql。
然而,libmysql包含的接口没有针对与PHP的应用交互进行优化,libmysql
是早期为C应用程序设计的。基于这个原因,MySQL Native驱动mysqlnd,作为libmysql的一个
针对PHP应用的修改版本被开发。
mysql,mysqli以及PDO Mysql驱动都可以各自配置使用
libmysql或者mysqlnd。mysqlnd作为一个专门设计
用于PHP系统的库,它在内存和速度上都比libmysql有很大提升。非常希望你去尝试这些提升。
MySQL Native驱动仅仅可以在MySQL服务端版本为4.1.3及以后版本才可以使用。
MySQL Native驱动是基于PHP扩展框架实现的。源代码位于PHP源码目录的ext/mysqlnd下。
它没有向PHP程序员暴露接口。
下表比较了PHP中三种主要的MySQL连接方式的功能:
The text: "PDO does not allow you to use MySQL's support for Multiple Statements" is outdated.Since v5.3, PHP intoduced multiple statement support into PDO (by PDO_MYSQLND driver replacing the previous PDO_MYSQL).
mysqli can be great in some circumstances but much work has been put into PHP Portable Data Objects (PDO) which you should also consider when choosing a way to connect to your database using php. For example, PDO supports MySQL with minimal performance hit and the code your write for it will support many other databases with little or no changes. That said, the database connection code, even if you have to change a lot of it to use another database will be much less work than coding your actual database data entry and report apps. When I started creating PHP/MySQL apps years ago, I used php's native support for PHP then moved to PEAR:DB and MDB/MDB2 and finally to wizzyweb which is basically like "phpMyAdmin for Apps" to create apps as it automatically generates the PHP PDO connection code and the application code. Sure, I could code it all from scratch but I save about 90% of the time it used to take. The point is look at the total amount of time you will save by using native code vs. an abstraction layer. Most people find that programmer time is the most valuable part of the equation so anything than can save programmer time should be heavily weighted.
I strongly recommend PHP programmers to use PDO as there driversPHP简写三目运算符实现二选一 - 技术 - LMLPHP后院 发表于
00:08原文链接 :
&来自 : 写过 PHP 的人应该都知道,PHP 中的逻辑运算符与或非计算后返回的值都是布尔值 true 或 false。而在其他的语言中,比如 JavaScript 和 Python 中,或运算(||) 会返回两者中的一个,是二选一。由于习惯了 JavaScript 的那种或运算的写法,导致一次我在将 Python 业务代码移植到 PHP 中时写出了一个 BUG。看下面的 JavaScript 代码:
var name = obj.name || 'Anonymous';
var callback = obj.callbackFunc || function(){};
在 JS 中,上面的写法非常常见。它和 Python 一样,或运算返回的是二选一。如果要在 PHP 中实现二选一,是不可以那样写的。很久以前也看到过三目运算的简写,之后再也没见到过那种写法,真的太少见,最近一次看到,让我觉得有点陌生。在 PHP 中,可以使用三目运算符简写的方式实现二选一,如下示例:
$name = $obj->name ?: 'Anonymous';
好的程序员应该写出好的代码,好的代码就应该选择一种最好的方式来写,而不是去写一些很奇怪的东西,这样容易造成别人的误解,特别是团队开发。比如,在 PHP 中,我们一般习惯用 isset() 来判断是否有设置值,但有些人会使用 @ 符号来屏蔽报错,其实这样是不规范的,屏蔽 Notice 错误对系统架构来讲是不健康的。如下所示:
$name = @$_GET['name'];
上面的代码系不规范的,也是极不提倡的,应该写成下面的方式:
$name = isset($_GET['name']) ? $_GET['name'] : '';
// 等价于 PHP 7 新写法
$name = $_GET['name'] ?? '';
&实战教程近期文章软件作品

我要回帖

更多关于 idea 代码简写 的文章

 

随机推荐