PHP测试题1

1 php标签有哪些?
包含<? ?>开闭标签及html标签

2 在一个纯PHP文件(例如,仅包含一个类定义的文件)中包含一个关闭?>标签时,确保其后不会跟着任何换行,请理解。
当PHP解析器安全地吃进跟在关闭标签之后的单个换行符时,任何其他的换行 都可能被输出到浏览器,如果之后要输出某些HTTP头,那么可能会造成混淆。

3 自动加载类,有哪些方法?
<code>spl_autoload_register()</code>(执行效率更高,更灵活)
<code> __autoload()</code>(一个项目只能有一个这样的函数)

4 单引号与双引号的异同?
都是字符串表达方式。单引号把内容当成纯文本,不会经过服务器翻译。而双引号则与此相反,里面的内容会经过服务器处理。单引号效率比双引号高。

<?php 

    $fo = "data";
    echo '$fo'; //单引号输出$fo
    echo "$fo"; //双引号输出data

?>

单引号不能处理变量和转义字符(除了\和'这两个)

 echo "what's my name?";  //最简单的写法,单引号和双引号不产生冲突(conflict)
 echo 'what\'s my name?';  //用斜杠转义

双引号内部的全都要被服务器解析,单引号只是当成普通字符而已
单引号里面的双引号中的变量不会解析!

    $test = "data";
    echo '"$test"';//输出"$test"
    echo "'$test'";//输出‘data’

5 <code>define()</code> vs <code>const()</code> ?
PHP5.3后,<code>define()</code> <code>const()</code>均能定义常量。

const FOO = 'BAR';
define('FOO','BAR');

这两种方式的根本区别在于<code>const</code>会在代码编译时定义一个常量,而<code>define</code>则是在代码运行时才定义一个常量。
这使得<code>const</code>有几下缺点:

a.<code>const</code>不能在条件语句中使用。如果要定义一个全局变量,<code>const</code>必须要处于整个代码的最外层

  if (...) {
     const FOO = 'BAR';    // 无效的
     }
     // but    
    if (...) {
    define('FOO', 'BAR'); // 有效的
    }

b.<code>const</code>只能用来声明变量(如数字、字符串,或者<code>true, false, null, FILE</code>),而<code>define()</code>还能接受表达式。不过在PHP5.6之后<code>const</code>也可以接受常量的表达式了:

const BIT_5 = 1 << 5;    // 在PHP5.6之后有效,之前无效                                
define('BIT_5', 1 << 5); // 一直有效

c.<code>const</code>的常量命名只能用直白的文本,而<code>define()</code>允许你用任何表达式来对常量命名。这样我们就可以执行以下操作:

for ($i = 0; $i < 32; ++$i) {
    define('BIT_' . $i, 1 << $i);
}

d.<code>const</code>定义的常量是大小写敏感的,但是<code>define</code>允许你将其第三个参数设置为true来关闭其对大小写的敏感:

define('FOO', 'BAR', true);
echo FOO; // BAR
echo foo; // BAR

<code>const</code>的优点:
更加易读、美观。
默认在当前的<code>namespace</code>下定义常量,而使用<code>define</code>则需要你写明整个<code>namespace</code>的完整路径。
自从PHP5.6后,使用<code>const</code>数组也能被定义为常量。而<code>define</code>目前是不支持这一功能的,但是该功能会在PHP7中被实现:

const FOO = [1, 2, 3];    // 在PHP 5.6中有效
define('FOO', [1, 2, 3]); // 在PHP 5.6无效, 在PHP 7.0有效

因为<code>const</code>在编译时就被执行了,所以它在速度上要比<code>define</code>快一点。
尤其是在使用<code>define</code>定义大量常量时,PHP的运行速度会变得非常慢.
与<code>define</code>相比,<code>const</code>能使定义常量的效率提高一倍(在配置有XDebug的开发机器上,这个差异还会更大)。但是在查询时间上,两者是没有区别的(因为二者用的都是同一个查询表)。
最后需要注意的一点是,<code>const</code>可以在class和interface当中使用 ,而<code>define</code>是做不到这一点的:

class Foo {
    const BAR = 2; // 有效
}
class Baz {
    define('QUX', 2); // 无效
}

6 有多种方式配置一个web服务器以提供php服务。知道哪几种?
<code>Apache</code> <code>Nginx</code> <code>IIS</code>

7 净化HTML输入和输出,如何处理?
对于简单的数据净化,使用htmlentities()函数, 复杂的数据净化则使用HTML Purifier库。

8 PHP中的UTF-8,你有什么认识?
PHP 语言层面是不支持 Unicode字符集的,但可以通过 UTF-8 编码能处理大部分问题。
最佳实践就是明确知道输入编码(不知道就检测),内部统一转换为 UTF-8 编码,输出编码也统一是 UTF-8编码。
当操作 Unicode 字符集的时候,请务必安装 mbstring 扩展,并使用相应的函数代替原生的字符串函数。举个例子,一个文件编码为 UTF-8 的 PHP 代码,假如使用 strlen() 函数是错误的,请使用 mb_strlen() 函数代替。
当php与mysql连接时,mysql最好配置UTF-8编码格式。

9 PHP处理日期和时间方式?
Date() / Time 函数函数允许您从 PHP 脚本运行的服务器上获取日期和时间。
处理时间函数 mktime():创建日期 strtotime() 用字符串来创建日期

10 检测一个值是否为null 或 false?
empty()
功能:任何一个未初始化的变量、值为 0 或 false 或 空字符串”" 或 null的变量、空数组、没有任何属性的对象,都将判断为empty==true
注意1:未初始化的变量也能被empty检测为“空”
注意2:empty只能检测变量,而不能检测语句
is_null
功能:检测变量是否为“null”
说明:当变量被赋值为“null”时,检测结果为true
注意1:null不区分大小写:$a = null; $a = NULL 没有任何区别
注意2:仅在变量的值为“null”时,检测结果才为true,0、空字符串、false、空数组都检测为false
注意3:变量未初始化时,程序将会报错

11 PHP命名空间
php 命名空间通过关键字namespace来声明,如果一个文件中包含命名空间,它必须在其它所有代码之前声明命名空间,除了一个以外:declare关键字。

12 PHP命令行接口
命令行接口
主要用来快速调试浏览器中不易定位的错误信息。

13 变量如何定义?如何检查变量是否定义?如何删除一个变量?判断一个变量是否为空的函数?

定义:
PHP 变量规则:
<li>变量以 $ 符号开头,其后是变量的名称</li>
<li>变量名称必须以字母或下划线开头</li>
<li>变量名称不能以数字开头</li>
<li>变量名称只能包含字母数字字符和下划线(A-z、0-9 以及 _)</li>
<li>变量名称对大小写敏感($y 与 $Y 是两个不同的变量)</li>
注释:PHP 变量名称对大小写敏感!

检查变量:
is_set

删除变量:
$varname = null
unset

判断变量为空:
empty()

14 什么是可变变量?
可变变量
一个变量的变量名可以动态的设置和使用。

15 变量赋值方式有那几种?
<li>直接赋值</li>
<li>变量间赋值</li>
<li>引用赋值</li>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,937评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,503评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,712评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,668评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,677评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,601评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,975评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,637评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,881评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,621评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,710评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,387评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,971评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,947评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,189评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,805评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,449评论 2 342

推荐阅读更多精彩内容

  • 一、php可以做什么 php是一种可以在服务器端运行的编程语言,可以运行在Web服务器端。 php是一门后台编程语...
    空谷悠阅读 3,086评论 4 97
  • php可以做什么 php是一种可以在服务器端运行的编程语言,可以运行在Web服务器端。 php是一门后台编程语言,...
    dptms阅读 1,908评论 1 15
  • 题目类型 a.C++与C差异(1-18) 1.C和C++中struct有什么区别? C没有Protection行为...
    阿面a阅读 7,631评论 0 10
  • 一、开发环境 学习一门语言,首先要搞定的就是环境的配置想要比较开心的开发php,你就需要搞定这几个 PHP Apa...
    Zach96阅读 381评论 1 1
  • 当一个人的时候,寂寞其实算不上寂寞。因为一个人,不会有牵挂,不会有念想,也不会有思念,因为不会有习惯。一个人的时候...
    遗忘的黑鹰阅读 641评论 0 1