史上最全爆肝整理PHP入门笔记(总结分享)-php教程-PHP中文网
https://www.cnblogs.com/li1056822533/p/6409989.html
1.?LAMP具体结构不包含下面哪种(A )
A:Windows系统
B:Apache服务器?????
C:MySQL数据库
D:PHP语言
2.?以下哪个SQL语句是正确的(D)
A:insert into users values(‘p001’,’张三’,’男’); ?
B:create table 表名(Code int primary key); ?
C:update users set?Code=’p002’?where Code=’p001’;
D:select Code as ‘代号’?from users;
3.?以下哪种类型是Bbrower/S网页程序架构的正确描述( C)C/S客户端程序
A:需要客户安装客户端 ?
B:不需要安装就可以使用?某些网页安装??
C:依托浏览器的网络系统
D:不需要服务器的系统????任何都需要服务器
4 . php中哪个语句可以输出变量类型( c)
A:echo 字符串
B:print???????????
C:var_dump()
D:print_r()????????打印数组
5 . php定义变量正确的是( b)
A:var a = 5;
B: $a = 10;
C:int b = 6;
D:var $a = 12;
6 . php中单引号和双引号包含字符串的区别正确的是(D)
A:单引号速度快,双引号速度慢
B:双引号速度快,单引号速度慢
C:单引号里面可以解析转义字符????????
D:双引号里面可以解析变量
7 . 若x,y为整型数据,以下语句执行的$y结果为( b )
$x = 1; ?
++$x;
?$y =$x++; ???
A:1 B:2 C:3 D:0
$x=1;
$y=++$x;
8 . php中关于字符串处理函数以下说法正确的是( c )
A:implode( )方法可以将字符串拆解为数组??合并
B:str_replace()可以替换指定位置的字符串???查找替换
C:substr( )可以截取字符串??
D:strlen( )不能取到字符串的长度
9 . 以下代码运行结果为:( A )
<?php
$first = "This course is very easy !";
$second = explode(" ",$first);
$first = implode(",", $second);
echo $first; ?
?>
A ?This,course,is,very,easy,! ?
B ?This course is very easy !
C ?This course is very easy !,
D ?提示错误
10 . 以下程序横线处应该使用的函数为:(B)
<?php
$email = ‘langwan@thizlinux.com.cn’;
$str = ____($email,‘@’);
$info = ____(‘.’,$str);
____($info);
????>
???输出结果为:
Array ([0] => @thizlinux [1]=>com[2]=>cn)
A:strchr, split, var_dump
B:strstr, explode, print_r
C:strstr,explode, echo
D:strchr, split, var,_dump
11、下列说法正确的是:(B?)
A. 数组的下标必须为数字,且从“0”开始
B. 数组的下标可以是字符串??????弱类型语言?????
C. 数组中的元素类型必顺一致
D. 数组的下标必须是连续的
12、下面哪项描述是错误的?( C)
A. 普通成员是属于对象的
B. 成员变量需要用public protected private修饰,在定义变量时不再需要var关键字
C. 静态成员是属于对象的
D. 包含抽象方法的类必须为抽象类,抽象类不能被实例化
13、关于exit( )与die( )的说法正确的是(C?)
A、当exit( )函数执行会停止执行下面的脚本,而die()无法做到
B、当die()函数执行会停止执行下面的脚本,而exit( )无法做到
C、使用die()函数的地方也可以使用exit()函数替换
D、die()函数和exit()函数没有区别
做退出程序,都会停止执行下面的脚本
14、下面程序运行结果( ?B)
<?php
$nextWeek = time() + (7 * 24 * 60 * 60);
echo 'Now: '. date('Y-m-d') ."\n";换行
echo 'Next Week: '. date('Y-m-d', $nextWeek) ."\n";
?>
A、得到今天的日期(月-日)
B、得到今天的日期(年-月-日)与下周的日期(年-月-日)
C、得到现在的时间(小时-分-秒)
D、得到现在到下周的时间间隔
15、以下代码执行结果为:( D)
<?php
??????function print_A(){
??????$A = "phpchina";
??????echo "A值为: ".$A."<p>";
//return ($A);
??????}
??????$B = print_A();
??????echo "B值为: ".$B."<P>";
?????>
A ?A值为:
???B值为:
B ?A值为:
B值为: phpchina
C ?A值为: phpchina
???B值为: phpchina
D ?A值为: phpchina
???B值为: ?
16、以下代码执行结果为:( ?c)
<?php
$A="Hello "; ?????????????????
function print_A() ??????????????
{
?$A = "php mysql !!";
??global $A; ?
?echo $A;
}
echo $A;
print_A();
?>
A Hello
B php mysql !!
C Hello Hello
D Hello ?php mysql !!
17、以下代码输出的结果是(B )
$a = "aa";
$aa = "bb";
echo ?$$a;
A aa
B bb
C $aa
D $$a
18、以下代码输出的结果是(A )
<?php
$a = 10;
$b = &$a;???&取地址
echo $b;
$b = 15;
echo $a;
?>
A 1015
B 1010
C 1515
D 1510
19、php输出拼接字符串正确的是( C )
A echo $a+”hello”
B echo $a+$b
C echo $a.”hello”
D echo ‘{$a}hello’
20、在用浏览器查看网页时出现404错误可能的原因是 ( ?B)
A 页面源代码错误???????500
B 文件不存在
C 与数据库连接错误
D 权限不足
21、以下代码输出的结果为( D)
<?php
$attr = array("0"=>"aa","1"=>"bb","2"=>"cc");
echo $attr[1];
?>
A 会报错!
B aa
C 输出为空
D bb
22、面向对象的三大特性中哪个不属于封装的做法(b)
A 将成员变为私有的
B 将成员变为公有的
C 封装方法来操作成员
D 使用__get()和__set()方法来操作成员
23、php的源码是( A)
A.开放的????B.封闭的????C.需购买的?????D.完全不可见的
24、php如何输出反斜杠( D)
A.(\n????B.\r)换行????
?C.\t?制表符???
?D.\\?输出一个反斜杠
25、下列哪项不属于OOP的三大特性( B)
A:封装 ?????B:重载 ???????C:继承 ???????D:多态
26、以下关于字符串的说法正确的是( c)
A:echo “hello\nworld”;在页面可以实现换行??源代码换
B:echo ‘helloworld{$a}’;可以解析变量a的值
C:$str=<<<AA
Hello world
AA; ?
该方式可以定义字符串
$str=<<<B
Agagafa
????B; ?????这一行前面不能有任何东西
D:print $a,”hello”;可以输出数据不报错
27、下列说法不正确的是( D)
A:list()函数可以写在等号左侧??唯一一个可以写在左侧的
B:each()函数可以返回数组里面的下一个元素
C:foreach()遍历数组的时候可以同时遍历出key和value
D:for循环能够遍历关联数组 (只能遍历索引数组)?
28、关于面向对象的说法不正确的是( C)
A:OOP是面向对象的简称
B:静态成员是属于类的
C:普通成员是属于类的???
D:类里面的$this关键字代表该对象本身
29、下列定义函数的方式是正确的( b )
A:public void Show(){ }???强类型语言
B:function Show($a=5,$b){ ?}
C:function Show(a,b){ ?}
D:function Show(int $a){ ?}
A. $users[] = "john";
B. array_add($users, "john");
C. array_push($users, "john");
D. $users [“aa”]= "john" ;
31、php中以下能输出1到10之间的随机数的是(C )
A:echo rand();
B:echo rand()*10;
C:echo rand(1,10);
D:echo rand(10);
32、php中以下能输出当前时间格式像:2016-5-6 13:10:56 的是(A )
A:echo date(“Y-m-d H:i:s”);
B:echo time();
C:echo date();
D:echo time(“Y-m-d H:i:s”);
33、以下哪项不属于函数的四要素( D )
A:返回类型
B:函数名
C:参数列表
D:访问修饰符???函数体
34、以下说法正确的是( c)
A:@符号可以屏蔽所有错误
B:exit;后面的语句可以继续执行???
C:10/4得出的结果是 2.5??
D:$$a;这种写法是错误的
35、以下关于构造函数说法不正确的是( B)
A:研究一个类,首先我们要研究的函数是构造函数
B:构造函数写法和普通函数没有区别?????construct?执行时间特殊new时执行
C:构造函数执行比较特殊
D:如果父类中存在构造函数并且需要参数,子类在造对象的时候也应该传入相应的参数。
36、以下关于多态的说法正确的是( D )
A:多态在每个对象调用方法时都会发生
B:多态是由于子类里面定义了不同的函数而产生的
C:多态的产生不需要条件
D:当父类引用指向子类实例的时候,由于子类对父类的方法进行了重写,在父类引用调用相应的函数的时候表现出的不同称为多态。
37、以下代码在页面上会输出多少行数据(A )
$attr = array(1,2,3,4);
while(list($key,$value) = each($attr))
{
echo $key."=>".$value."<br>";
}
while(list($key,$value) = each($attr))
{
echo $key."=>".$value."<br>";
}
A:4 ???B:6 C:8 D:12
38、以下说法正确的是(C )
A:$attr代表数组,那么数组长度可以通过$attr.length取到??js方法 ? ? ? ??
??php ?count方法
B:unset()方法不能删除数组里面的某个元素
C:php的数组里面可以存储任意类型的数据
D:php里面只有索引数组
39、以下说法不正确的是( b )
A:模糊查询使用的关键字是like?
B:排序查询asc是降序,desc是升序
C:分页查询使用的关键字是limit
D:mysql如果只安装服务不安装界面也可以正常使用
40、以下代码输出的结果为(D )
$a = "cc";
$cc = "dd";
echo ?$a=="cc"???"{$$a}":$a;
A?B:C
判定A的值,true执行B false执行C
A:cc?
B:$a
C:$$a
D:dd
二、判断题(共10题,每题2分)
?
1.php中布尔类型数据只有两个值:真和假。( ??√??)
2.php中连接两个字符串的符号是“+ ”。( ?×?)
3.php可以使用“scanf”来打印输出结果。( ??×?)
4.每个语句结尾都要加“;”来表示语句结束。 ( √????)
5.php变量使用之前需要定义变量类型。(×?)
6.在php中“==”的意思是“等于”。(?√???)=赋值
7.while和do-while语句都是先判断条件再执行循环体。(??×????)
8.“break ”代表的意思是跳出循环。( ??√???)
9.若定义数组时省略关键字key,则第三个数组元素的关键字为3。(???×???)
10.mysql数据库中查询数据用select语句。(?????√??)
PHP是一种创建动态交互性站点的强有力服务端脚本语言
PHP文件的默认文件拓展名是“ .php ”。
输出文本的基础指令:echo 、 print ;
print只允许输出一个字符串,返回值总为 1
echo 输出的速度比 print 快, echo 没有返回值,print有返回值1
print_r 数组 不输出类型
var_dump( 变量 )输出类型
echo 输出具有return的作用;return返回;
echo和return只出现一个
PHP变量:
以 $ 符号开始,后面跟着变量的名称。
变量名不能包含空格。
变量名区分大小写。
要使用global提升作用域
static 保留前一次调用的值,
PHP数据类型:
string 字符串 :是一串字符的序列,使用单引号或双引号;
integer 整型 :是一个没有小数的数字;
float 浮点型 :是带小数部分的数字;
Boolean 布尔型 :可以是true或者false
array 数组 :是一个可以在一个变量中存储多个值。
object 对象 : 对象必须声明,class声明类对象;
null 空 :变量没有值
PHP类型比较:
松散比较 == 只比较值不比较类型
严格比较 === 除了比较值还比较类型
php常量:
常量是一个简单的标识符。该值在脚本中不能改变。
设置常量使用define();
常量在定义后,默认是全局变量,可以运行在脚本任何地方
php数组排序函数:
sort()对数组进行升序排列;
rsort()对数组进行降序排序;
asort()根据关联数组的值,对数组进行升序排列
ksort()根据关联数组的键,对数组进行升序排列
arsort() 根据关联数组的值,对数组进行降序排列
krsort()根据关联数组的键,对数组进行降序排列
常用函数
?
is_array ()//检测变量是否是数组
is_float ()//检测变量是否是浮点型
is_int ()//检测变量是否是整数
is_string ()//检测变量是否是字符串
isset()//检测变量是否已设置并且非NULL
print_r ()//打印变量,输出易于阅读的信息。
serialize ()//序列化对象
unset()//释放給定的变量
var_dump ()//打印变量的相关信息
var_export ()//输出或返回一个变量,以字符串形式表示
explode ()//把字符串打散为数组
implode()//把数组元素组合为一个字符串:
array_keys()//返回包含数组中所有键名的一个新数组
array_push()//向第-个参数的数组尾部添加- -个或多个元素(入栈) ,然后返回新数组的长度
strstr()//函数搜索字符串在另-字符串中的第一 -次出现
in_array()//检查数组中是否存在指定的值。
htmlspecialchars ()//把预定义的字符转换为HTML 实体
opendir($file) //打开一个目录,参数为目录名或目录路径
readdir ($dir_ handle)//读取目录
empty($ceshi)//检测变量是否为空
unserialize() //提供过滤的特性,可以防止非法数据进行代码注入,提供了更安全的反序列化数据。
array_merge() //函数将数组合并到一起,返回一个联合的数组
检测是否存在定义
isset( )
检测是否存在,不存在返回null;取反判断
!empty( )
strlen() 函数返回字符串的长度,
中文字符串的处理使用 mb_strlen() 函数。。
类:
概念:定义了一件事物的抽象特点。类的定义包含了数据的形式以及对数据的操作。
class 类名定义
类的变量使用 var 来声明, 变量也可以初始化值
函数定义类似 PHP 函数的定义,但函数只能通过该类及其实例化的对象访问。
变量 $this 代表自身的对象。
对象:
概念:是类的实例。
成员变量:
概念:定义在类内部的变量。该变量的值对外是不可见的,但是可以通过成员函数访问,在类被实例化为对象后,该变量即可称为对象的属性。
调用成员的方法:
在实例化对象后,我们可以使用该对象调用成员方法,该对象的成员方法只能操作该对象的成员变量,
set调用赋值 ;get调用获取。
成员函数:
概念:定义在类的内部,可用于访问对象的数据。
继承:
概念:继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。
extends继承
父类:
概念:一个类被其他类继承,可将该类称为父类,或基类,或超类。
子类:
概念: 一个类继承其他类称为子类,也可称为派生类。(父类派生出来的子类)
多态:
概念:多态性是指相同的函数或方法可作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。
多态性成立的三个必要条件
子类继承父类、子类重写(覆盖)父类、父类引用指向子类对象;
重载(重写;覆盖):
概念:简单说,就是函数或者方法有同样的名称,但是参数列表不相同的情形,这样的同名不同参数的函数或者方法之间,互相称之为重载函数或者方法。
如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。
封装:
概念:封装是指将现实世界中存在的某个客体的属性与行为绑定在一起,并放置在一个逻辑单元内。
构造函数:
概念:主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。
析构函数:
概念:析构函数(destructor) 与构造函数相反,当对象结束其生命周期时(例如对象所在的函数已调用完毕),系统自动执行析构函数。析构函数往往用来做"清理善后" 的工作(例如在建立对象时用new开辟了一片内存空间,应在退出前在析构函数中用delete释放)。
_construct 构造
_destruct 销毁
访问控制:
public 公有 可在任何地方被访问
private 私有 只能被其定义所在的类访问
protected 受保护 可以被自身、子类、父类访问
如果没有设置这些关键字,则该方法默认为公有。
接口:
interface
接口继承:
implements
类中必须实现接口中定义的所有方法,否则会报一个致命错误。类可以实现多个接口,用逗号来分隔多个接口的名称。
常量:
可以把类中始终保持不变的值定义为常量。在定义和使用常量的时候不需要使用 $ 符号。
设置常量
define、const
parent、self、static、$this 的区别
self 和 CLASS,都是对当前类的静态引用,取决于定义当前方法所在的类。也就是说,self 写在哪个类里面, 它引用的就是谁。
t h i s 指 向 的 是 实 际 调 用 时 的 对 象 , 也 就 是 说 , 实 际 运 行 过 程 中 , 谁 调 用 了 类 的 属 性 或 方 法 , this 指向的是实际调用时的对象,也就是说,实际运行过程中,谁调用了类的属性或方法,this指向的是实际调用时的对象,也就是说,实际运行过程中,谁调用了类的属性或方法,this 指向的就是哪个对象。但 $this 不能访问类的静态属性和常量,且 $this 不能存在于静态方法中。
static 关键字除了可以声明类的静态成员(属性和方法)外,还有一个非常重要的作用就是后期静态绑定。
parent,是对当前类的父类的静态引用。
self 可以用于访问类的静态属性、静态方法和常量,但 self 指向的是当前定义所在的类,这是 self 的限制。
$this 指向的对象所属的类和 static 指向的类相同。
static 可以用于静态或非静态方法中,也可以访问类的静态属性、静态方法、常量和非静态方法,但不能访问非静态属性。
静态调用时,static 指向的是实际调用时的类;非静态调用时,static 指向的是实际调用时的对象所属的类。
static关键字:
声明类属性或方法为 static(静态),就可以不实例化类而直接访问。
静态属性不能通过一个类已实例化的对象来访问(但静态方法可以)。
由于静态方法不需要通过对象即可调用,所以伪变量 $this 在静态方法中不可用。
静态属性不可以由对象通过 -> 操作符来访问。
自 PHP 5.3.0 起,可以用一个变量来动态调用类。但该变量的值不能为关键字 self,parent 或 static。
final关键字:
如果父类中的方法被声明为 final,则子类无法覆盖该方法。如果一个类被声明为 final,则不能被继承。
PHP 超级全局变量
$GLOBALS
$GLOBALS 是一个包含了全部变量的全局组合数组。变量的名字就是数组的键。
$_SERVER
$_SERVER 保存了报头信息、PHP脚本信息以一点点服务器信息
$_REQUEST
$_REQUEST 用于收集HTML表单提交的数据。
$_POST
$_POST 被广泛应用于收集表单数据,在HTML form标签的指定该属性:"method=“post”。
$_GET
$_GET 同样被广泛应用于收集表单数据,在HTML form标签的指定该属性:"method=“get”。
$_FILES
$_FILES 保存了 以 post 方式 提交过来的文件的相关信息。
$_ENV
$_ENV保存了服务器的环境变量,由shell脚本提供。
$_COOKIE
$_COOKIE保存了报头中保存的 cookie 信息。
$_SESSION
$_SESSION保存了存储在服务器中与用户相关的 session 信息
PHP基础知识点总结-CSDN博客