一,写面相对象三个主要属性和定义?
封装继承是多态的
封装:对物体外部进行封装,不可以任意访问物体中的数据
继承:以子类的方式继承父类,以实现功能的扩充
多态:对于不同类别有继承关系的对象可调用同一名称成员函数以得到不同的响应结果
二,使用PHP程序编写五种或更多种方法来得到文件扩展名?
//办法一
substr(strrchr($file,"."),1)
//办法二
substr($file,strrpos($file,".")+1)
//第三种办法
end)explosion. $file)
//第四个办法
$info=pathinfo($file)
echo$info["extension"]
//第五个办法
pathinfo($file,PATHINFO_EXTENSION)
三,写好下面PHP程序执行结果
$count=5
functionget_count(){
static$count=0
return+$counter
}
echometacount
echo$count++
echometacount
echoget_count()
echoget_count()
?>
输出是:5、5、6、2
四,编写以下代码输出结果:1
functionmyfunc($argument){
echo$argunment+10
}
$variable=ten
echo"myfunc($variable)=".myfunc($variable)
首先调用函数输出然后再输出字符串
产出如下:20myfunc/10=
五,请以尽可能少语句来达到验证输出Email地址的效果
"/[0-9a-zA-Z_]+@[0-9a-zA-Z_].c_m|.net|.cn/ism"
六。php的安全问题是存在的吗?若存在的话,列出描述
1、筛选用户所输入的数值,如post、get传参中获取的数值
示例:$_POST〔"user"〕;没有过滤就带来了一系列麻烦
2、禁用register_globals在没有被禁用的情况下,不能判断这个变量是否为预定义全局变量中的一个值
例:regiseter_globals=on$var会代替掉$_POST["var"]
3、阻止sql的注入
以mysql-real-escape-string()为包装器对用户的输入进行封装,则可避免在用户输入时注入任何恶意SQL
例:$sql="selectcount(*)asctrfromuserswhereusername=.mysql_real_
andpassword=. mysql_real_escape_string($pw).
limit1"
七,SQL语句运行效率怎么判断?怎样对一次查询SQL进行优化?
用explain看sql语句
主要是看type、Extra等数值
1、忌全表扫描
2、下面的操作失误,还可能导致全表扫描
3.忌用于where子句!(1)当我们在对一个语句进行翻译时,通常都要根据该句子所表达的意思来决定其是否需要做什么操作=或者<>操作符,以及null值判断全表扫描
3.回避where子句的orinnotin
4.避免用where子句的字段进行函数操作
5、不写毫无意义的询问
6、索引力求不过分
8.一群猴子排在一个圈中,按照1、2、...和n的顺序进行编号,接着由第一开始计数,计数至m个,将猴子踢出圈外,由后开始计数,计数到m个,最后踢出圈外。。。如果是一个人在其中一个猴群中行走的话,那么他就是这个猴群中唯一的一个大王;如果不是一人在这一猴群中行走,则他就是另一个猴群中惟一的一位大王这样一直持续到最后只有一只猴子,这猴子叫大王在这个游戏中,我们可以通过编程模拟来控制这只猴子从m到n的任意位置移动输出上一位大王号码
//注释不抄写有助于理解
functionking($m,$n)
{
//构建数组
for($i=1;$i<;$m+1;$i++){
$arr[]=$i
}
$一=0,//设数组指针
while(count($arr)>;1)
{
//对数组进行遍历,并判断所述当前猴子的出局序号是否相同,若不相同,则退出数组,否则将其置于数组末尾
if(($i+1)%$n==0){
unset($arr[$i])
other{
array_push($arr,arr~[1));//这轮没有出局的猴子把数组的尾端放掉
unset($arr[$i]);//删除
}
$i++
}
return$arr
}
var_dump(king(6,4))
publicstaticfeatureplay($first,$m,$k)
{
//首先,寻找是后者的结点
$tail=$first
while($tail->;next!=$first)
$tail=$tail->;next
//从第几开始数起就应该把该人设作为头节点或寻找其后面的节点作为辅助节点
for($i=0;$i<;$k-1;$i++)
{
$first=$first->;next
$tail=$tail->;next
}
while($tail!=$first)
{
//寻找待迁移结点
for($j=0;$j<;$m-1;$j++)
{
$first=$first->;next
$tail=$tail->;next
}
//删去节点
echo‘孩子’。$first-->;no。‘去掉@non?".这个问题在网络上十分流行
$first=$first->;next
$tail->;next=$first
}
echo"大王是:".$first->;no
}
}
额外的题目
1.一们猎人牵着儿狼、羊、捆白菜渡河,每次却只牵着三者之一为什么要这样做呢?Q:为了不使儿狼吃羊,也为了不使羊吃白菜,它是如何渡河的?
先有羊,后有白菜,最后才有狼
2.用小圆炉烤制2张饼子,每张饼子正反两面均需烤制,而且每张饼子烤制所需的时间为半分钟。如何在1分半钟内烤制3张饼子?
烤制半分钟后的a饼和b饼去掉换做c饼,烤制半分钟的a饼和a饼去掉换做b饼和c饼的反面,烤制一半
3.有只青蛙掉进了一个18尺深的井里,天天白天爬到6尺,夜里滑到3尺一天早上,它发现井底有一个洞,便爬了进去,但只爬到4英寸左右就停了下来,然后继续往下爬行,直到钻到底为止照这样下去,几天就能从井口爬出来?
五天第5日白天从井口爬出来