关于PHP的100个小知识
第二期【21-40】
正文内容
21、在PHP
中error_reporting
这个函数有什么作用?
设置错误级别与错误信息回报
22、JS
表单弹出对话框函数是?获得输入焦点函数是?
弹出对话框: alert()
prompt()
confirm()
获得输入焦点: focus()
23、foo()
和@foo()
之间有什么区别?
@foo()控制错误输出
24、mysql_fetch_row()
和mysql_fetch_array()
之间有什么区别?
mysql_fetch_row()
是从结果集取出1行数组,作为枚举
mysql_fetch_array()
是从结果集取出一行数组作为关联数组,或数字数组,两者兼得
25、GD
库是做什么用的?
GD
库提供了一系列用来处理图片的API
,使用GD
库可以处理图片,或者生成图片。在网站上GD
库通常用来生成缩略图或者用来对图片加水印或者对网站数据生成报表。
26、面向对象编程
有两个重要的概念:类和对象 类是具备某项功能的抽象模型,实际应用中,还需要对类进行实例化后使用。这样就引入了对象的概念。 对象是类进行实例化后的一个产物,是一个实体。 封装 :把客观的事物封装成一个抽象的类。 继承:子类继承父类,可以使用父类的属性和方法。可以实现接口,同时实现接口中的所有方法 多态:覆盖和重载 子类可以覆盖父类中的方法;一个类中可以同时拥有同一个函数名的方法,但是方法的参数不同,实现的结果也不同。
27、接触过的PHP框架
Yii
Thinkphp
Laravel
CodeIgniter
Yaf
Swoole
Workerman
28、MySQL
存储引擎
ISAM
:查询速度快、增删改慢,支持全文索引、不支持外键、不支持事务
MyISAM
:ISAM
升级版
Memory
:数据驻留在内存、速度快、数据管理不稳定、断电后数据全部丢失
InnoDB
:速度较慢、支持外键、支持事务、不支持全文索引
使用的存储引擎
`MyISAM`:内容管理系统(新闻、官网、电商、软件下载、房屋、招聘...) 可读不可改 大部分是浏览信息
`InnoDB`:技术型网站(bbs、blog、webo、oa...)
29、数据库操作流程
以MySQL
为例基本上分为三个步骤,
第一步:打开数据库链接;
第二步:进行操作;
第三步:释放变量,关闭数据库。
/**
*
* @param $sql - 可执行SQL语句
* @param $type -
* @return Array/String
*/
function DB($sql='',$type=MYSQLI_ASSOC){
if ($sql=='') {
return false;
}
@$con=mysqli_connect('localhost','root','password','database');
if ($errno = mysqli_connect_errno($con)) {
$error = mysqli_connect_error($con);
return "\n errno:{$errno} \n error:{$error} \n";
}
$char=mysqli_query($con,'set names utf8');
$res=mysqli_query($con,$sql);
$sql=strtolower($sql);//全都小写
if (substr_count($sql,'select')) {
$rows=array();
while ($row=mysqli_fetch_array($res,$type)) {
$rows[]=$row;
}
return $rows;
}elseif(substr_count($sql, 'insert')){
return mysqli_insert_id($con);//返回上一条 insert 语句的自增ID
}else{
return mysqli_affected_rows($con);//返回影响行数
}
}
30、PHP
加密函数?
crypt()
md5()
sha1()
31、字符串“to upper case”
分别用PHP
,Shell
,JS
实现将字符串中的字符全部转换成大写并输出
PHP
:
echo strtoupper("to upper case");
Shell:
$ echo "to upper case" | tr 'a-z' 'A-Z'
JS:
var stmp1 = " to upper case ";
alert(stmp1.toLocaleUpperCase()); //转换成大写
alert(stmp1.toUpperCase()) //转换成大写
32、防止SQL
注入
1.使用 addslashes()
函数 - string addcslashes ( string $str , string $charlist )
函数在制定的预定义字符前添加反斜杠
2.对字段和密码md5()
加密处理
3.预处理过滤处理
33、用PHP
打印出前一天的时间,格式是 年-月-日 时:分:秒
//echo date('Y-m-d H:i:s',time()-60*60*24);
echo date("Y-m-d H:i:s",strtotime("-1 day"));
34、如何实现字符串翻转?
这个与第13个点重复了。。。
35、实现中文字串截取无乱码的方法
mb_substr()
36、以下哪一句不会把 John
新增到 users
阵列?
$users[] = 'john'; //成功把 John 新增到阵列 users。
array_add($users,'john'); //函式 array_add() 无定义。
array_push($users,'john'); //成功把 John 新增到阵列 users。
$users ||= 'john'; //语法错误。
37、sort()
、asort()
、和 ksort()
有什么分别?它们分别在什么情况下使用?
sort()
根据阵列中元素的值,以英文字母顺序排序,索引键会由 0 到 n-1 重新编号。主要是当阵列索引键的值无关紧要时用来阵列排序。
asort()
与 sort()
一样把阵列的元素按英文字母顺序来排列,不同的是所有索引键都获得保留,特别适合替关联阵列排序。
ksort()
根据阵列中索引键的值,以英文字母顺序排序,特别适合用于希望把索引键排序的关联阵列。
38、以下的代码会产生什么?为什么?
$num =10;
function multiply()
{
$num =$num *10;
}
multiply();
echo $num;
出现警告级别错误:Notice: Undefined variable: num
由于函式 multiply()
没有指定 $num
为全域变量(例如 global $num
或者 $_GLOBALS['num']
),所以 $num
的值是 10
39、那些函式可以用来在线正执行的脚本中插入函式库?
include()
、include_once()
、require ()
、require_once()
40、foo() 与 @foo() 有什么分别?
这个与第23个点重复了。。。就再多说一点吧~
foo()
会执行这个函式,任何解译错误、语法错误、执行错误都会在页面上显示出来。
@foo()
在执行这个函式时,会隐藏所有上述的错误讯息。
很多应用程式都使用 @mysql_connect() 和 @mysql_query 来隐藏 mysql 的错误讯息,我认为这是很严重的失误,因为错误 不该被隐藏,你必须妥善处理它们,可能的话解决它们。
[hermit auto="1" loop="0" unexpand="1" fullheight="0"]remote#:14[/hermit]