1.什么是面向对象,主要特征是什么?
面向对象是程序的一种设计方式,可以提高程序的重用性,使程序更清晰,主要特征有:继承,封装,多态。
2.编程采用用MVC三层结构,请问这三层是哪三层,优点是什么?
分别为模型层,控制层,视图层,由控制层调用模型层处理数据,然后将数据传输到视图层去显示。
优点:①提高代码的重用性,避免的代码冗余。②将视图层和模型层分开,同一个程序有不同的表现形式。
3.php是否可以搭配其他数据库使用
可以的,但是php+mysql是最优先的搭配方式,但是搭配其他数据库也可以使用,例如:Oracle,SqlServer等数据库。
4.在做程序开发的时候如何提高程序的运行效率。
①优化sql语言,尽量不使用select *做查询,需要查询哪个字段就查询哪个字段,少用join表连接查询,少用模糊查询。
5.ajax的优势是什么
ajax是异步传输技术,可以使用JavaScript实现,也可以通过jQuery实现,通过实现实时刷新,提高用户的使用体验。
6.web开发里面传输数据有哪些方式,这些方式有什么区别。
传输数据的方式有post与get方式
区别:①数据传输方式:get是通过拼接url传输,post是通过body体进行传输。
②url:get因为是通过utl拼接,所以get传输方式可以在url上面看得见,post看不见。
③传输大小限制:get因为是url拼接传输,所以有大小限制,但是这个大小也是根据具体的不同浏览器来约束,例如谷歌是8182,火狐是65536,其他各有不同。post因为是post.ini来配置,可以无穷大。
④是否可以缓存:get可以在浏览器上面缓存,但是post不可以。
7.为什么说php的一大优点是跨平台
php开发的最优搭配是php+MySQL+Apache,此搭配可以在任何服务器上面开发,例如Windows,Linux等平台上面开发,不受平台的约束限制,所以说叫做跨平台。
8.isset()和empty()的区别
isset()判断变量是否存在,可以判断一个,也可以判断多个变量,只要其中一个变量不存在就返回false。empty()判断变量是否为空为假,只能判断一个变量,如果为空为假则返回true。
9.char与varchar的区别
char:为固定长度字符类型,分配多少就占多大的空间。
varchar:为可变长度字符类型,内容有多大就占多大。
10.session与cookie的区别是什么
①cookie可以存储在浏览器或者本地上面,session只存储在服务器上面。
②cookie只能存储string对象,而session可以存储任意的java对象。
③session比cookie更安全,因为cookie可以被人从本地或者服务器上面找到,从而被攻击。
④cookie有大小限制,session没有大小限制。
11.php的三种注释
// 用于单行注释,但是注释内容里面不能出现<??>
/* */ 用于多行注释,
# 用于单行注释
12.变量类型
①php里面有八种变量类型:Boolean(布尔类型),int(整形),float(浮点型),double(双精度),string(字符串),array(数组),object(对象),resource(资源类型),null(空)
②php变量都是$符号定义
③php单引号为原样输出,双引号为字符转义,示例代码如下:
$test = 1;
echo '$test';//输出为$test
echo "$test";//输出为1
13.三元运算符
$num = 12;
echo $num1%2==0 ? '偶数' : '奇数';//12取余2是否等于0,等于就输出偶数,否则就是奇数
14.foreach的语法结构
$test = array("1"=>'高等数学',"2"=>'中等数学',"3"=>'低等数学');
foreach($test as $key=>$value){
echo:'当前键为:'.$key.'当前值为:'.$value;
}
15.php合并数组有哪几种方式,每一种都是如何实现的?
①array_merge()一种简单的合并方式
②array_merge_recursive()如果两个数组有相同的数据,将他们递归合并
③array_combine()与‘+’两者都是相同的效果,前一个数组的值作为后一个数组的键
参考代码如下:
//array_merge()方法
$a1=array("1","2");
$a2=array("2","3");
$result = array_merge($a1,$a2);
print_r($result);
//输出的结果为:
Array
(
[0] => 1
[1] => 2
[2] => 2
[3] => 3
)
//array_merge_recursive()方法
$ar1 = array("a" => array("b" => "c"), 1);
$ar2 = array(2, "a" => array("b" => "d", "e"));
print_r(array_merge_recursive($ar1,$ar2));
//输出结果为:
Array
(
[a] => Array
(
[b] => Array
(
[0] => c
[1] => d
)
[0] => e
)
[0] => 1
[1] => 2
)
//array_combine 和 '+'方法
$ar1=array("a","b","c");
$ar2=array("1","2","3");
print_r(array_combine($ar1,$ar2));
//输出结果为:
Array
(
[a] => 1
[b] => 2
[c] => 3
)
16.如何定义一个函数?函数区分大小写吗?
①使用function关键字
②函数命名规则跟变量一样,以字母或者下划线为开头,不能以数字开头
③函数名不区分大小写
④函数名不可以使用已经声明过的或者系统自建的函数名称