美文网首页
记一次PHP面试题

记一次PHP面试题

作者: 倚窗听雨211 | 来源:发表于2019-02-13 13:10 被阅读0次

1、有3个数字,以最少的代码获取最大值

注:这个问题主要考察的不是排序算法,而是对PHP基础的三目表达式的使用,以少量代码实现功能(相似的php中的短路写法也是这种情况($a>$b  &&  $a=100 ))。

答:

function maxNum($a,$b,$c){

    return $a > $b ? ($a > $c ? $a : $c ) : ($b > $c ? $b : $c);

}

echo maxNum(28,78,26);//78


2、PHP中有几个魔术变量,__LINE__是什么意思?

答:7个;__LINE__指的是当前行号。

FILE :文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。

DIR:文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。

FUNCTION: 常量返回该函数被定义时的名字

CLASS:常量返回该类被定义时的名字(区分大小写)。

METHOD:类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。

NAMESPACE:当前命名空间的名称(区分大小写)。此常量是在编译时定义的(PHP 5.3.0 新增)。


3、cookie禁用后,session可用吗?

答:可用。

1、PHP可以通过配置php.ini中的session.use_trans_sid = 1,或者编译时打开打开了“--enable-trans-sid”选项,让PHP自动跨页传递Session ID。

2. 手动通过URL传值、隐藏表单传递Session ID。

3. 用文件、数据库等形式保存Session ID,在跨页过程中手动调用。


4、填写下面代码的输出结果

class foo {

    var $bar = 'I am bar.';

    var $arr = array('I am A.', 'I am B.', 'I am C.');

    var $r  = 'I am r.';

}

$foo = new foo();

$bar = 'bar';

$baz = array('foo', 'bar', 'baz', 'quux');

echo $foo->$bar . "\n";  //$bar 的值是 bar ,$foo->bar 的值是 I am bar

echo $foo->$baz[1] . "\n"; //I am bar.

$start = 'b';$end  = 'ar';

echo $foo->{$start . $end} . "\n";//$start 的值是'b' ,$end 的值是'ar' ,{$start . $end}的值是 'bar',$foo->{$start . $end} 的值是'I am bar.'

$arr = 'arr';

echo $foo->$arr[1] . "\n";// $arr 的值是 'arr',这里‘arr’作为字符数组解释 ,$arr[1] 的值是 r $foo->$arr[1]的值是 'I am r.'。

echo $foo->{$arr}[1] . "\n";// 大括号界定了界限,再解释时将'arr'作为整体解释,而不再作为字符数组


5、GET和POST最大传输数据长度的大小是多少?

答:实际上,http协议中,GET和POST的传输长度都是没限制的。通常说的最大传输数据量这些限制是跟浏览器和服务器有关。

        GET请求是以URL传输数据的,因此传输的最大值是跟URL的最大值相关的(下面会列出各大浏览器和服务器的限制)。如果超过服务器长度限制,可能会拒绝请求或发生不完整的请求。

    POST请求的所能传递的数据量大小取决于服务器的设置和内存大小。例如PHP中,POST请求的默认最大值为2M,可以通过php.ini修改post_max_size这个值。如果上传文件,还需要修改upload_max_filesize。

浏览器对GET限制长度的大小

1、IE

IE浏览器(Microsoft Internet Explorer) 对url长度限制是2083(2K+53),超过这个限制,则自动截断(若是form提交则提交按钮不起作用)。

2、firefox

firefox(火狐浏览器)的url长度限制为 65 536(这个数字是2的16次方,16位进制中的最大值)字符,但实际上有效的URL最大长度不少于100,000个字符。

3、chrome

chrome(谷歌)的url长度限制超过8182个字符返回本文开头时列出的错误。

4、Safari

Safari的url长度限制至少为 80 000 字符。

5、Opera

Opera 浏览器的url长度限制为190 000 字符。Opera 9 地址栏中输入190 000字符时依然能正常编辑。

服务器对GET限制长度的大小

1、Apache

Apache能接受url长度限制为8 192 (8k)字符

2、IIS

Microsoft Internet Information Server(IIS)能接受url长度限制为16 384个字符。

这个是可以通过修改的(IIS7)。

3、Perl HTTP::Daemon

Perl HTTP::Daemon 至少可以接受url长度限制为8000字符。Perl HTTP::Daemon中限制HTTP request headers的总长度不超过16 384字节(不包括post,file uploads等)。但当url超过8000字符时会返回413错误。

这个限制可以被修改,在Daemon.pm查找16×1024并更改成更大的值。

4、ngnix

可以通过修改配置来改变url请求串的url长度限制。

client_header_buffer_size 默认值:client_header_buffer_size 1k

large_client_header_buffers默认值 :large_client_header_buffers 4 4k/8k

相关文章

网友评论

      本文标题:记一次PHP面试题

      本文链接:https://www.haomeiwen.com/subject/kzokeqtx.html