试述PHP数据类型 并举例,[PHP]php基础练习题学习随笔

include():包含没有文件时会报错,产生警告,但程序继续运行;

require():包含没有文件时会报错,导致致命错误,程序停止运行;

include_once()和require_once()用法同上。但是它们都会首先检查所要包含的文件是否已载入,如果已经载入了则不会重复载入。

8、PHP5中魔术方法函数有哪几个,举例说明各自用法 (15个魔术方法的总结)

__autoload() 类文件自动加载函数

__construct() 构造函数、__destruct()  析构函数

__call() 当所调用的成员方法不存在(或者没有权限)时调用,用于对错误后做一些操作或者提示信息

__clone() 该函数在对象克隆时自动调用,其作用是对克隆的副本做一些初始化操作

__get() 当所对象所调用的成员属性未声明或者级别为private或者protected等时,我们可以在这个函数里进行自己的一些操作

__set() 当所对未声明或者级别为private或者protected等进行赋值时调用此函数,我们可以在这个函数里进行自己的一些操作

__isset() 当对一个未声明或者访问级别受限的成员属性调用isset函数时调用此函数,共用户做一些操作

__unset() 当对一个未声明或者访问级别受限的成员属性调用unset函数时调用此函数,共用户做一些操作

__toString() 在将对象引用作为字符串操作时自动调用,返回一个字符串

__sleep() 是在序列化时自动调用的,序列化这里可以理解成将信息写如文件中更长久保存

__wakeup() 该魔术方法在反序列化的时候自动调用,为反序列化生成的对象做一些初始化操作

__set_state() 当调用var_export()时,这个静态方法会被调用(自PHP 5.1.0起有效)。本方法的唯一参数是一个数组,其中包含按array(’property’ => value, …)格式排列的类属性。

__invoke() 当尝试以调用函数的方式调用一个对象时,__invoke 方法会被自动调用。

__callStatic() 它的工作方式类似于 __call() 魔术方法,__callStatic() 是为了处理静态方法调用

9、数组的创建方式有哪些?举例说明

使用array():$数组名=array(值,.......);

使用compact()函数可以将一个或多个变量转换为数组

使用array_combine()函数将两个数组合并成一个新数组,其中的一个数组是键名,另一个数组的值为键值。

使用range()函数创建数组:$number = range(0,5); or 指定步长:$number = range(0,50,10);

使用array_fill()函数:用给定的值类填充数组。  array_fill(start,number,value)

10、数组的遍历方式有哪些?举例说明

使用for语句循环遍历数组:   for ($i= 0;$i< count($arr); $i++)

使用foreach语句遍历数组:

foreach($arrays as $value)

foreach($arrays as $key=>$value)

联合使用list()、each()和while循环遍历数组。

while(list($key,$val)= each($colors)) //list()用一步操作给一组变量进行赋值,each()返回数组中当前元素的键/值对并向后移动数组指针

11、php关联数组按照键、值正向排序:array(‘c‘=>3, ‘a‘=>4, ‘b‘=>2, ‘e‘=>5)

$arr = array(‘c‘=>3, ‘a‘=>4, ‘b‘=>2, ‘e‘=>5)ksort($arr); //正向按键排序

asort($arr); //正向按值排序

rksort($arr);//反向按键排序

rasort($arr);//反向按值排序

12、对一个含有重复值的数组去重:array(‘a‘=>1, ‘b‘=>2, ‘c‘=>3, ‘d‘=>4, ‘a‘=>1, ‘b‘=>3, ‘d‘=>4)

$arr = array(‘a‘=>1, ‘b‘=>2, ‘c‘=>3, ‘d‘=>4, ‘a‘=>1, ‘b‘=>3, ‘d‘=>4);

$result = array_unique($arr); //只保留重复值的第一个键

13、sort()、asort()和ksort()有什么区别?分别在什么情况下使用?

sort() 只依据值从小到大排序,键值不参与排序

asort() 依据值排序,键值参与排序

ksort() 依据键值排序,值参与排序

14、请说明php中传值与传引用的区别。什么时候传值什么时候传引用?

按值传递:函数范围内对值的任何改变在函数外部都会被忽略

按引用传递:函数范围内对值的任何改变在函数外部也能反映出这些修改

15、如何访问和设置一个类的属性?

$object = new myclass();

$newstr = $object->test;

$object->test = "info";

16、写出php5权限控制修饰符

public private protected

17、列举php数据类型

整型(integer)、浮点型(float)、字符串型(string)和布尔型(Boolean)四种标量类型,数组(array)和对象(object)两种合成类型,空值(null)和资源(resource)两种特殊类型。

18、如何修改SESSION的生存时间

setcookie(session_name(), session_id(), time() + 86400, "/");

or

19、简要说说PHP框架

20、一个网页地址如 http://www.phpres.com/index.html,如何得到内容?

$data = file_get_contents(‘http://www.phpres.com/index.html‘) ;

21、简述如何得到当前执行脚本路径,包括所得到参数。

echo "http://".$_SERVER [‘HTTP_HOST‘].$_SERVER[‘PHP_SELF‘];

22、写出数据类型int char varchar datetime text的意思,varchar和char有什么区别?

int是数字类型,char固定长度字符串,varchar可变长度字符串,datetime日期时间型,text文本字符串

23、如何调试并查看错误日志?

打开调试功能:php.ini 里设置error_reporting = E_ALL以及 display_errors = On,重启 web服务(apache)。

一般来讲,Linux系统下(以Centos为例) Php的错误日志会记录在 /var/log/httpd 下的errror_log 里,可通过tail -n 5 -f error_log查看最近几条错误日志。

24、php与apache(nginx)的关系?php代码是如何执行的?

php 是一种编程语言,Apache是一种站点服务器软件,在Apache的conf配置文件里有LoadModule php5_module modules/libphp5.so的类似语句加载php, Apache 处理请求页面时,发现页面中内嵌的 <?php> ... >,就会根据配置调用 php 解释器执行这段 php 代码。

25、echo,print()和print_r()有什么区别?

echo是PHP语句,无返回值;print和print_r是函数,可以有返回值。

print() 只能打印出简单类型变量的值(如int,string)

print_r() 可以打印出复杂类型变量的值(如数组,对象)

26、使用php写一段简单查询,查出所有姓名为”张三“的内容并打印。

$result = mysql_query("SELECT * FROM users WHERE name=‘张三‘");while($row=mysql_fetch_array($result))

{

echo $row[‘name‘].$row[‘tel‘].$row[‘addr‘];

echo"
";

}

27、请写一个函数验证电子邮件的格式是否正确(要求使用正则)

function checkMail($mailText)

{if(ereg("^[0-9a-z][a-z0-9\._-]{1,}@[a-z0-9-]{1,}[a-z0-9]\.[a-z\.]{1,}[a-z]$", $mailText)echo "correct!";else

echo "wrong!";

}

28、不用php内置函数实现数组排序。如:array("d"=>100, "c"=>22, "a"=>22)

$arr=array("d"=>100,"b"=>22,"c"=>22,"a"=>22);

$newArr=array();while($arr)

{

$key=null;

$value=null;foreach ($arr as $k=>$v)

{if($v>$value||($v==$value&&$k>$key))

{

$key=$k;

$value=$v;

}

}

$newArr[$key]=$value;

unset($arr[$key]);

}

print_r($newArr);?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值