在怎么查看ip地址址栏出现reverse gd是什么意思

工具类服务
编辑部专用服务
作者专用服务
新版平台已经上线,充值操作将跳转,您的账户权限不会受到影响
一种使用反向学习策略的改进花粉授粉算法
为了进一步提高基本花粉授粉算法的性能,提出了一种改进的花粉授粉算法(EFPA )。该算法在演化过程中以一定的概率利用一般反向学习策略对当前种群作一般反向变换,从而生成一般反向变换种群,然后将一般反向变换种群与当前种群同时进行竞争,选择出优秀的个体进入下一代种群。在演化计算领域中广泛使用的基准测试函数上,将提出算法与基本花粉授粉算法进行了比较实验,实验结果表明提出算法能够有效地提高基本花粉授粉算法的性能。
Abstract:
In order to improve the performance of the traditional flower pollination algorithm, an enhanced flower pollination algorithm (EFPA) is proposed in this paper. The generalized reverse learning strategy is used with a certain probability to convert the current population into a generalized reverse population. Then, the converted population is competed with the current population to select the excellent individuals for the next population. The experiments were conducted on a set of classical benchmark test functions, which are widely used in the evolutionary computation community. The comparison results between EFPA and the traditional FPA indicate that the proposed flower pollination algorithm can enhance the performance of the traditional FPA.
JING Furong
GUO Zhaolu
LUO Huilan
作者单位:
江西理工大学,信息工程学院,江西 赣州 341000
江西理工大学,理学院,江西 赣州 341000
年,卷(期):
Keywords:
机标分类号:
在线出版日期:
基金项目:
国家自然科学基金资助项目
本文读者也读过
相关检索词
万方数据知识服务平台--国家科技支撑计划资助项目(编号:2006BAH03B01)(C)北京万方数据股份有限公司
万方数据电子出版社1. strlen( )与 mb_strlen( )的作用分别是什么(新浪网技术部)
strlen和mb_strlen都是用于获取字符串长度。
strlen只针对单字节编码字符,也就是说它计算的是字符串的总字节数。如果是多字节编码,如 gbk 和 utf-8,使用 strlen 得到是该字符的总字节数;
可以使用mb_strlen获取其字符个数,使用mb_strlen 要注意两点,一是要开启 mbstring 扩展,二是要指定字符集。
strlen函数不管是字符串是单字节编码还是多字节编码,函数返回的结果都是字符串的总字节数。mb_strlen函数当字符串是单字节编码时,函数返回的结果是字符串的总字节数。当字符串是多字节编码时,函数返回的结果是字符串的个数。
mb_strlen函数在没有指定字符编码时,表示使用默认字符编码,即单字节编码,函数返回的是字符串的总字节数。PHP默认是单字节编码(内部字符编码),多字节编码方式有gbk、utf-8等。
header('Content-Type:text/charset=utf-8');
$str1 =&duang~&;
echo strlen($str1);
echo &&br /&&;
echo mb_strlen($str1);
echo &&br /&&;
echo mb_strlen($str1,'utf-8');
echo &&hr /&&;
$str2 = &你是我的小苹果&;
echo strlen($str2);
echo &&br /&&;
echo mb_strlen($str2);
echo &&br /&&;
echo mb_strlen($str2,'utf-8');
相关题目 1:实现中文字串截取无乱码的方法。
方法一,使用&&内置函数 mb_substr()
方法二,自定义函数,以 utf-8 为例,如下:
header('Content-Type:text/charset=utf-8');
$str = &你是我的温暖阳光&;
echo mb_substr($str, 2,4,'utf-8');
$str string 要处理的字符串
$start int 从哪个位置开始截取
$length int 要截取字符的个数
string 截取后得到的字符串
function substr_utf8($str,$start,$length = null)
$sep = &&;
$arr = array_slice(preg_split(&//u&, $str,-1,PREG_SPLIT_NO_EMPTY), $start,$length);
return join($sep,$arr);
$str = &你是我的温暖阳光&;
echo substr_utf8($str,2,4);
相关题目2:如何求解字符串“中国2北333京”的字符数(一个中文一个字符),并找到第四个字符“北”
方法一,使用内置函数,确保配置中已打开mbstring扩展
方法二,自定义函数实现求其长度,截取使用上面定义的substr_utf8
header('Content-Type:text/charset=utf-8');
$str = &中国2北333京&;
echo mb_strlen($str,'utf-8');
echo mb_substr($str, 3,1,'utf-8');
$str string 要处理的字符串
$start int 从哪个位置开始截取
$length int 要截取字符的个数
string 截取后得到的字符串
function substr_utf8($str,$start,$length = null)
$sep = &&;
$arr = array_slice(preg_split(&//u&, $str,-1,PREG_SPLIT_NO_EMPTY), $start,$length);
return join($sep,$arr);
$str string 要处理的字符串
int 字符串的长度或字符个数
function strlen_utf8($str)
return count(preg_split(&//u&, $str,-1,PREG_SPLIT_NO_EMPTY));
$str = &中国2北333京&;
echo strlen_utf8($str);
echo substr_utf8($str,3,1);
2. 下列哪个函数是用正则表达式将字符串分割到数组中 ( )
B. implode
C. explode
3. 写出下列程序的输出结果(新浪网技术部)
$y = ($x % 7) * 16;
$z = $x & $y ? 1 : 0;
4. 写出下列几个预定义全局变量的作用 (新浪网技术部)
$_SERVER['DOCUMENT_ROOT']//当前运行脚本所在的文档根目录
$_SERVER['HTTP_HOST ']//当前请求的 Host: 头部的内容
$_SERVER['REMOTE_ADDR']//正在浏览当前页面用户的 IP 地址
$_SERVER['HTTP_REFERER']//链接到当前页面的前一页面的 URL 地址
$_SERVER['SERVER_NAME']//当前运行脚本所在服务器主机的名称
$_FILES //包含有所有上传的文件信息
S_FILES['userfile']['name']//客户端机器文件的原名称
$_FILES['userfile']['type']//文件 MIME 类型,如果浏览器提供此信息的话,如“image/gif”。
$_FILES['userfile']['size']//已上传文件的大小,单位为字节
$_FILES['userfile']['tmp_name']//文件被上传后在服务端储存的临时文件名
$_FILES['userfile']['error']//和该文件上传相关的错误代码
5. include 和 require 都能把另外一个文件包含到当前文件中,他们有什么区别?Include 和include_once 又有什么区别?(新浪网技术部)
二者区别只有一个,那就是对包含文件的需求程度。include 就是包含,如果被包含的文件不存在的话,那么则会提示一个错误,但是程序会继续执行下去。而 require 意思是需要,如果被包含文件不存在或者无法打开的时候,则会提示错误,并且会终止程序的执行。
这两种结构除了在如何处理失败之外完全一样。
once 的意思是一次,那么 include_once 和 require_once 表示只包含一次,避免重复包含。
相关题目 1:What is the difference between include & include_once? include & require?(Yahoo)
相关题目 2:语句 include 和 require 都能把另外一个文件包含到当前文件中,它们的区
别是_;为了避免多次包含同一文件,可以用语句_来代替它们。
在如何处理失败时,include()产生一个警告而require()则导致一个致命错误;require_once()/include_once()
相关题目 3:What functions can you use to add library code to the currently running script?(Yahoo)
include、require
6. 用最少的代码写一个求 3 值最大值的函数. (51.com 笔试题)
function maxnum($a,$b,$c)
return $a & $b ? ($a & $c ? $a : $c) : ($b & $c ? $b : $c);
echo maxnum(24,15,8);
7. 简述 POST 和 GET 传输的最大容量分别是多少? (51.com 笔试题)
POST 根据你 php.ini 文件配置(默认是 8M)
GET 的话大小限制在 2KB
相关题目:表单中 get 与 post 提交方法的区别?
get 是发送请求 HTTP 协议通过 url 参数传递进行接收,而 post 是实体数据,可以通过表单提交大量信息。
8. 有三个 php 文件位于同一目录下,内容如下所示。使用浏览器访问 c.php,请问是否存在问题。如果存在问题,请指出修正方法并写出浏览器查看效果 ,如果不存在问题,请写出浏览器查看效果(酷讯 PHP 工程师笔试题)
function fa(){
echo &in Function A\n&;
include 'a.php';
function fb() {
echo &in Function B\n&;
include 'a.php';
include 'b.php';
答案:存在问题,a.php 被包含了两次,导致 fa()函数重复定义,使用 include_once 避免重复包含。
9. echo(),print(),print_r()的区别?(新浪)
echo, print是PHP语句print_r是函数,语句没有返回值,函数可以有返回值(即便没有用)
print只能打印出简单类型变量的值(如int,string)
print_r可以打印出复杂类型变量的值(如数组,对象)
echo -- 输出一个或者多个字符串
print --输出一个字符串
print_r -- 打印关于变量的易于理解的信息。
在实际使用中, print 和 echo 两者的功能几乎是完全一样。
可以这么说,凡是有一个可以使用的地方,另一个也可以使用。但是,两者之间也还是一个非常重要的区别:
在 echo 函数中,可以同时输出多个字符串,而在 print 函数中则只可以同时输出一个字符串。同时,echo函数并不需要圆括号,所以echo函数更像是语句而不像是函数。
echo 和 print 都不是函数,而是语言结构,所以圆括号都不是必需的。他们的区别在于:
(1) echo可以输出多个字符串,像下面这样:
'a','b','c';
如果你非要加上圆括号,注意写成echo ('a','b','c');是错误的,应该写成:
('a'),('b'),('c');
它没有像函数的行为,所以不能用于函数的上下文
(2) print只能输出一个字符串,它可以表现得像一个函数,比如你可以如下使用:
= print 'Hello World';
(有返回值所以能够用在更复杂的表达式中,可以判断是否输出成功等表达式)所以它能用在更复杂的表达式中。
另外,echo的效率相对比较快~
如下代码:
$a='hello ';
$b='php world!';
echo $a,$b.'&br /&';
print $a.$b.'&br /&';
print $a,$b.'&br /&';
echo 本身支持的一种语法,而.则是字符串连接操作符,使用,的效率要高一些。(少了连接运算)echo可以使用,来分隔字符串变量,也可以使用,来分隔字符串变量;print只能使用.来分隔字符串变量。echo效率比print高
echo命令和print命令相同,没有区别
echo()和print()有区别:
echo()没有返回值,与echo命令相同
print()有返回值,总是返回1
printf()和sprintf()类似,均为格式化输出,不同的是前者输出到标准输出,后者输出到变量
相关题目:What is the difference between &print()& and &echo( )&? (腾讯)
answer: print is a function,echo is a language construct
10. 用 PHP 打印出前一天的时间格式是
22:21:21。
echo date(&Y-m-d H:i:s&,time() - 3600*24);
echo &&br /&&;
echo date(&Y-m-d H:i:s&,strtotime(&-1 day&));
echo &&br /&&;
$date = strtotime(&&);
使用strtotime可以将任何字符串的时间表示(now,seconds,day,week等)转换成时间戳,仅针对英文。在实际开发的时候,strtotime非常有用,因为对于表单来说,提交的数据都是字符串。比如,“”需要将其转换成时间戳然后存到数据库中。
相关题目:求两个日期的差数,例如
的日期差数
(strtotime(&&)-strtotime(&&))/3600*24
11. 不使用第三个变量交换两个变量的值
$a = &PHP&;
$b = &MySQL&;
echo '$a='.$a.'&br /&';
echo '$b='.$b.'&br /&';
list($a,$b) = array($b,$a);
echo '$a='.$a.'&br /&';
echo '$b='.$b.'&br /&';
echo &&hr /&&;
$a = &PHP&;
$b = &MySQL&;
echo '$a='.$a.'&br /&';
echo '$b='.$b.'&br /&';
$a = $a.'&'.$b;
$b = explode('&', $a);
$a = $b[1];
$b = $b[0];
echo '$a='.$a.'&br /&';
echo '$b='.$b.'&br /&';
请说明 php 中传值与传引用的区别。什么时候传值什么时候传引用?
变量默认总是传值赋值。
那也就是说,当将一个表达式的值赋予一个变量时,整个原始表达式的值被赋值到目标变量。这意味着,例如,当一个变量的值赋予另外一个变量时,改变其中一个变量的值,将不会影响到另外一个变量。
PHP 也提供了另外一种方式给变量赋值:引用赋值。
这意味着新的变量简单的引用(换言之,“成为其别名” 或者 “指向”)了原始变量。改动新的变量将影响到原始变量,反之亦然。使用引用赋值,简单地将一个&符号加到将要赋值的变量前(源变量)。
对象默认是传引用。
对于较大的数据,传引用比较好,这样可以节省内存的开销。
相关题目 1:What would the following code print to the browser? Why?
$num = 10;
function multipy($num){
$num = $num +10;
multipy($num);
相关题目 2:What is the difference between a reference and a regular variable? How do you pass by reference & why would you want to?(Yahoo)
reference 传送的是变量的地址而非它的值,所以在函数中改变一个变量的值时,整个应用都见到这个变量的新值。
一个 regular variable 传送给函数的是它的值,当函数改变这个变量的值时,只有这个函数才见到新值,应用的其他部分仍然见到旧值。
转换成 1,234,567,890 每 3 ???用逗号隔开的形式。(百度)
function str($str)
$str = strrev($str);
$str = chunk_split($str,3,',');
$str = strrev($str);
$str = ltrim($str,',');
echo str($str);
相关题目 1:如何实现字符串翻转?
strrev(),不过这种方法都不能解决中文字符串翻转的问题,会出错的。
header(&Content-Type:text/charset=utf-8&);
string $str
function strrev_utf8($str)
return join(&&,array_reverse(preg_split(&//u&, $str)));
$str = &悄悄是别离的笙箫&;
echo strrev_utf8($str);
相关题目 2:假设现在有一个字符串
如何使用 PHP 对它进行操作使字符串以 moc.udiab.输出? (亿邮)
$str = &&;
echo strrev(str_replace('www','',$str));
14. 用 PHP 写出显示客户端 IP 与服务器 IP 的代码。
客户端 IP:$_SERVER[&REMOTE_ADDR&]
服务器端 IP:$_SERVER[&SERVER_ADDR&]
15. 简述如何得到当前执行脚本路径,包括所得到参数。
获取当前执行脚本路径使用$_SERVER[&SCRIPT_FILENAME&]或__FILE__
获取参数,使用$_SERVER[&QUERY_STRING&]
16. What is the difference between foo() & @foo()?(Yahoo)
foo() 会执行这个函式,任何解译错误、语法错误、执行错误都会在页面上显示出来。
@foo() 在执行这个函式时,会隐藏所有上述的错误讯息。
很多应用程序都使用 @mysql_connect() 和 @mysql_query 来隐藏&&的错误信息,这是不对的,因为错误不该被隐藏,你必须妥善处理它们,可能的话解决它们。
17. 下面哪个选项没有将 john 添加到 users 数组中? ( 百度 )
A.&users[]=&john&;B.arrayadd(users,
C. array_push($users, &john&);
D. $users ||= &john& ;
18. 检测一个变量是否有设置的函数?是否为空的函数是?
isset 检测一个变量是否设置
empty 检测是否为空
注意二者的区别,如果 变量 是非空或非零的值,则 empty() 返回 FALSE。换句话说,&&、0、&0&、NULL、FALSE、array() 以及没有任何属性的对象都将被认为是空的。
isset是检测变量是否设置/定义,empty是检测已定义的变量的值是否为空。
19. 在 PHP 中,当前脚本的名称(不包括路径和查询字符串)记录在预定义变量______中;而链接到当前页面的的前一页面 URL 记录在预定义变量______中。
当前脚本名称:$_SERVER[&PHP_SELF&]或者&SERVER[&SCRIPTNAME&];链接到当前页面的前一页面的URL地址:_SERVER[&HTTP_REFERER&]。
20. sort()、assort()、和 ksort() 有什么分别?它们分别在什么情况下使用?
sort(),根据数组中元素的值,以英文字母顺序排序,索引键会由 0 到 n-1 重新编号。主要是当数组索引键的值无关紧要时用来把数组排序。
assort(),PHP 没有 assort() 函式,所以可能是 asort() 的笔误。
asort(),对数组进行排序,数组的索引保持和单元的关联。主要用于对那些单元顺序很重要的结合数组进行排序。
ksort(),根据数组中索引键的值,以英文字母顺序排序,特别适合用于希望把索引键排序的关联数组。
21. 在 PHP 中 error_reporting 这个函数有什么作用?
打开或者关闭错误报告,如:
error_reporting(0);
error_reporting(E_ALL & ~ E_NOTICE);
error_reporting(E_ALL);
相关题目:error_reporting(2047) 什么作用?(新浪)
2047 = 1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 + 256 + 512 + 1024
1 对应 E_ERROR,2 对应 E_WARNING,4 对应 E_PARSE,
8 对应 E_NOTICE,16 对应 E_CORE_ERROR,32 对应 E_CORE_WARNING
,64 对应 E_COMPILE_ERROR,128对应 E_COMPILE_WARNING,256 对应 E_USER_ERROR,
512 对应 E_USER_WARNING,1024 对应 E_USER_NOTICE。
error_reporting(2047)意味着上述错误都会显示出来。
写出以下程序的输出结果 (CBSI)
$str = 'cd';
$$str = 'hotdog';//$cd = 'hotdog';
$$str .= 'ok';//$cd .= 'ok';
相关题目:什么是可变变量?
获取一个普通变量的值作为这个可变变量的变量名。
23. 常量如何定义? 如何检测一个常量是否被定义?
定义常量:define()
检测常量是否定义:defined()
define(&TEST&,&happy new year!&);
if( defined(&TEST&)){
echo TEST;
执行程序段&?php
echo 8%(-2) ?&将输出
%为取模运算,输出 0
% $b其结果的正负取决于 $a 的符号。
((-8)%3).&&br /&&;//输出 -2
(8%(-3)).&&br /&&;//输出 2
25. 数组函数 arsort 的作用是_;语句 error_reporting(2047)的作用是_。
arsort:对数组进行逆向排序并保持索引关系
error_reporting(2047)的作用 report All errors and warnings,见 21 题中相关题目。
26. 以 Apache 模块的方式安装 PHP,在文件 http.conf 中首先要用语句_动态装载 PHP模块,然后再用语句_使得 Apache 把所有扩展名为 php 的文件都作为 PHP 脚本处理。
LoadModule php5_module &c:/php/php5apache2.dll&;
AddType application/x-httpd-php .php
27. 一个函数的参数不能是对变量的引用,除非在 php.ini 中把____设为 on.
allow_call_time_pass_reference :是否启用在函数调用时强制参数被按照引用传递,默认关闭。
28. 在 PHP 中,heredoc 是一种特殊的字符串,它的结束标志必须____顶格写,并且不能包含任何其它字符除&;&
count(&abc&); 输出什么?(新浪?)
count :计算数组中的单元数目或对象中的属性个数,通常是一个 array,任何其它类型都只有一个单元。
对于对象,如果安装了 SPL,可以通过实现 Countable 接口来调用 count()。该接口只有一个方法 count(),此方法返回 count() 函数的返回值。
如果 var 不是数组类型或者实现了 Countable 接口的对象,将返回 1,有一个例外,如果 var 是 NULL 则结果是 0。
相关题目:What will be the output of the following PHP code:(腾讯)
echo count(strlen(&http://php.net&));
30. 写个函数用来对二维数组排序(新浪)
$arr array 要排序的二维数组
$row string 排序依据的某列
$type string asc表示正序,为默认值;desc表示逆序
array 返回排序后的二维数组
function array_sort($arr,$row,$type ='asc')
$arr_temp = array();
foreach ($arr as $v) {
$arr_temp[$v[$row]] = $v;
if ($type == 'asc') {
ksort($arr_temp);
} elseif($type == 'desc') {
krsort($arr_temp);
return $arr_
$person = array(
array('id'=&2,'name'=&'zhangsan','age'=&23),
array('id'=&5,'name'=&'lisi','age'=&28),
array('id'=&3,'name'=&'apple','age'=&17)
echo &&pre&before:&br /&&;
print_r($person);
echo &&/pre&&;
echo &&hr /&&;
$person2 = array_sort($person,'name');
echo &&pre&after:&br /&&;
print_r($person2);
echo &&/pre&&;
31. 写 5 个不同的自己的函数,来获取一个全路径的文件的扩展名,允许封装 php 库中已有的函数。(新浪)
function ext_name1($path){
$path_info = strrchr($path, '.');
return ltrim($path_info,'.');
function ext_name2($path){
$path_info = substr($path,strrpos($path, '.'));
return ltrim($path_info,'.');
function ext_name3($path){
$path_info = pathinfo($path);
return $path_info['extension'];
function ext_name4($path){
$arr = explode('.', $path);
return $arr[count($arr)-1];
function ext_name5($path){
$pattern = '/^[^\.]+\.([\w]+)$/';
return preg_replace($pattern, '${1}', basename($path));
$path = str_replace('\\', '/', __FILE__);
echo &$path&br /&&;
echo ext_name1($path);echo &&br /&&;
echo ext_name2($path);echo &&br /&&;
echo ext_name3($path);echo &&br /&&;
echo ext_name4($path);echo &&br /&&;
echo ext_name5($path);echo &&br /&&;
32. PHP 的意思,它能干些什么?
PHP( Hypertext Preprocessor,超文本预处理器的字母缩写)是一种被广泛应用的开放源代码的多用途脚本语言,它可嵌入到 HTML 中,尤其适合 web 开发。
PHP 主要是用于服务端的脚本程序,因此可以用 PHP 来完成任何其它的 CGI 程序能够完成的工作,例如收集表单数据,生成动态网页,或者发送/接收Cookies。但 PHP 的功能远不局限于此。
PHP 脚本主要用于以下三个领域:
服务端脚本。这是 PHP 最传统,也是最主要的目标领域。命令行脚本。可以编写一段 PHP 脚本,并且不需要任何服务器或者浏览器来运行它。通过这种方式,仅仅只需要 PHP 解析器来执行。编写桌面应用程序。
33. Name a few ways to output (print) a block of HTML code in PHP?(Yahoo)
你可以使用 PHP 中任何一种输出语句,包括 echo、print、printf,大部分人都使用如下例的 echo:
&My string $variable&;
你也可以使用这种方法:
echo &&&END
This text is written to the screen as output and this $variable is parsed too. If you wanted you
can have &span& HTML tags in here as well.&/span& The END; remarks must be on a line of itsown, and can
34. 写出以下程序的输出结果 (CBSI)
$a = $b & $c ? 4 : 5;
输出结果为 4
= array('james', 'tom', 'symfony');请打印出第一个元素的值,并请将数组的值用','号分隔并合并成字串输出。
打印第一个元素:echo
以’,’合并成字符串:echo
implode(',',$arr);
36.&a=′abcdef′;请取出a
的值并打印出第一个字母
echo $a{0} 或 echo $a[0]
相关题目:string=&abcdefg&,那么string{4}的值是?
值是 e
37. What does === do? What's an example of something that will give true for '==', but not'==='? (Yahoo)
=== 表示全等,是指的两个变量的值和类型都相等。
如 if (strpos('abc','a') == false) 和 if (strpos('abc','a') === false)
38. Which of the following snippets prints a representation of 42 with two decimal places?(腾讯)
A. printf(&%.2d\n&, 42);
B. printf(&%1.2f\n&, 42);
C. printf(&%1.2u\n&, 42);
39. Given&text=′Content-TypeType:text/xml′;Whichofthefollowingprints′text/xml′?(腾讯)A.printsubstr(text,
strchr(text,′:′));B.printsubstr(text,
strchr(text,′:′)+1);C.printsubstr(text,
strpos(text,′:′)+1);D.printsubstr(text,
strpos(text,′:′)+2);E.printsubstr(text,
0, strchr($text, ':'));
$text = 'Content-Type:text/xml';
print substr($text, strchr($text,':'));
echo &&br /&&;
print substr($text, strchr($text,':')+1);
echo &&br /&&;
print substr($text, strpos($text,':')+1);
echo &&br /&&;
print substr($text, strpos($text,':')+2);
echo &&br /&&;
print substr($text, 0,strchr($text,':'));
echo &&br /&&;
40. What is the value of $a?
$a = in_array('01',array('1')) == var_dump('01' == 1);
41. What is the value of $result in the following PHP code? (腾讯)
function timesTwo($int)
$int = $int * 2;
$result = timesTwo($int);
answer: NULL
42. What is the best all-purpose way of comparing two strings? (腾讯)
A. Using the strpos function
B. Using the == operator
C. Using strcasecmp()
D. Using strcmp()
43. 运行以下程序,$a 的值是多少?
$a = &hello&;
unset($b);
$b = &world&;
echo $a,$b;
answer:hello
44. 运行以下程序,$b 的值是多少?
$b = $a++;
echo $a,$b;
45. 运行以下程序,$x 的值是多少?
$array = array();
$x = empty($array);
echo $x ? &true&:&false&;
answer:ture
46. 将字符 09 转换成十进制数字。(百度)
使用 intval 函数,echo intval(&09&),或者使用 int 强制类型转换。
47. 请 写 一 个 函 数 , 实 现 以 下 功 能 : 字 符 串 &open_door& 转 换 成 &OpenDoor& 、&make_by_id& 转换成 &MakeById&。
$str string 要转换的字符串
string 转换后的字符串
function change_str($str){
$arr = explode('_',$str);
$arr = array_map('ucfirst', $arr);
return implode('', $arr);
$str1 = 'open_door';
$str2 = 'make_by_id';
echo change_str($str1);
echo change_str($str2);
48. 要求写一段程序,实现以下数组arr1转换成数组arr2:
$arr1 = array(
'0' =& array('fid' =& 1,'tid' =&1,'name' =& 'Name1'),
'1' =& array('fid' =& 1,'tid' =&2,'name' =& 'Name2'),
'2' =& array('fid' =& 1,'tid' =&5,'name' =& 'Name3'),
'3' =& array('fid' =& 1,'tid' =&7,'name' =& 'Name4'),
'4' =& array('fid' =& 3,'tid' =&9,'name' =& 'Name5')
$arr_tmp = array();
$arr2 = array();
foreach ($arr1 as $v) {
$arr_tmp[$v['fid']][] = array_slice($v, 1);
foreach ($arr_tmp as $v) {
$arr2[] = $v;
print_r($arr1);
print_r($arr2);
49. 如何将一个数组元素的排列顺序反转过来(例如以下代码反转以后的顺序是: array ('d','c', 'b', 'a'))? (选择 2 个答案)
$array = array ('a', 'b', 'c', 'd');
A. array_flip()
B. array_reverse()
D. rsort()
50.&val=max(′string′,array(2,5,7),42);val
值为
array(2,5,7)
max 用法示例如下:
echo max(1,3,5,6,7);
echo &&br /&&;
echo max(array(2,4,5));
echo &&br /&&;
echo max(0,'hello');
echo &&br /&&;
echo max('hello','0');
echo &&br /&&;
echo max(-1,'hello');
echo &&br /&&;
$val = max(array(2,4,8),array(2,5,7));
var_dump($val);
echo &&br /&&;
$val = max('string', array(2, 5, 7), 42);
var_dump($val);
51. 定义常量 MYPI=3.14_________________________;
define(&MYPI&,3.14);
52. 简述单引号和双引号的用法
双引号串中的内容可以被解释而且替换,而单引号串中的内容总被认为是普通字符。
53. Switch 完整语法和注意事项
使用 Switch 语句可以避免冗长的 if..elseif..else 代码块,case只能处理整数,或者能像整数一样运算的类型,比如char,使用时case 后用'',注意 break不能少,default是为了处理一些之前没有包含到的情况,这样更为安全。
54. 用 PHP 编写代码在页面输出当前的北京时间,格式为 “ 09:22:03”
date_default_timezone_set('PRC');
echo date(&Y-m-d H:i:s&,time());
55. 简述 GBK、GB2312、BIG5 、GB18030
GB2312 支持的汉字较少,GBK 是相比 GB2312 汉字更为丰富,包括全部中日韩汉字,GB18030 相比 GBK 增加了一些少数名族汉字汉字库更为多样,但是常人很难用到,一般简体中文使用 GBK 而繁体中文使用 BIG5。
56. 计算某段字符串中某个字符出现的次数(例如 : gdfgfdgd59gmkblg 中 g 的次数)
$text = 'gdfgfdgd59gmkblg';
echo substr_count ( $text,'g');
57. 以下语句可能存在错误,如果存在错误请指出什么错误(每个语句单独考虑)
$val = 333;// error,print_r 是一个函数,需加上括号,如果是 print 则可以
print_r($val
= 333);&// 正确
+= ($b = 4) + 5;// notice,a未定义,但可以正确运行‘foo[bar]
= 'enemy';//
notice,最好 bar 加上引号function x($a = &1&, $b){}`// 无,但给参数默认值应尽量从右向左
58. 写出如下程序的输出结果(小米)
header(&Content-type:text/charset=utf-8&);
$str1 = null;
$str2 = false;
echo $str1 == $str2 ? '相等' : '不相等';
$str3 = '';
$str4 = 0;
echo $str3 == $str4 ? '相等' : '不相等';
$str5 = 0;
$str6 = '0';
echo $str1 === $str2 ? '相等' : '不相等';
59. 写出如下程序的输出结果
$a1 = null;
$a2 = false;
$a5 = '0';
$a6 = 'null';
$a7 = array();
$a8 = array(array());
echo empty($a1) ? 'true' : 'false';
echo '&br /&';
echo empty($a2) ? 'true' : 'false';
echo '&br /&';
echo empty($a3) ? 'true' : 'false';
echo '&br /&';
echo empty($a4) ? 'true' : 'false';
echo '&br /&';
echo empty($a5) ? 'true' : 'false';
echo '&br /&';
echo empty($a6) ? 'true' : 'false';
echo '&br /&';
echo empty($a7) ? 'true' : 'false';
echo '&br /&';
echo empty($a8) ? 'true' : 'false';
60. 写出如下程序的输出结果
$test = 'aaaa';
unset($test);
61. 写出如下程序的输出结果
$count = 5;
function get_count()
static $count = 0;
return $count++;
++$
echo get_count();
echo get_count();
在 PHP 中,作用域是不重叠的,函数之外的是全局变量,函数内部定义的则是局部变量,二者是两个不同的变量,除非在函数内使用 global 显式声明使用全局变量或直接用$_GLOBALS 来引用。
62. 写出如下程序的输出结果
$GLOBALS['var1'] = 5;
$var2 = 1;
function get_value()
global $var2;
$var1 = 0;
return $var2++;
get_value();
echo $var1;
echo $var2;
63. 写出如下程序的输出结果
function get_arr()
unset($arr[0]);
$arr1 = array(1,2);
$arr2 = array(1,2);
get_arr(&$arr1);
get_arr($arr2);
echo count($arr1);
echo count($arr2);
64.&arr=array(′james′,′tom′,′symfony′);请将′jack′添加到arr
数组的开头,并把 jack 打印出来。
array_unshift($arr,’jack’);
echo $arr[0];
65.&arr=array(′james′,′tom′,′symfony′);请将arr
数组的值用 ’,’分割并合并成字符串输出?
implode(‘,’,$arr);
66.&str=‘jack,james,tom,symfony′;请将str
用’,’分割,并把分割后的值放到$arr 数组中?
= explode(‘,’,$str);
67.&arr=array(3,7,2,1,′d′,′abc′);请将arr
按照从大到小的顺序排序,并保持其键值不变?
arsort($arr);
print_r($arr);
68. $mail = “”;
请将此邮箱的域()取出来并打印,看最多能写出几种方法?
echo strstr($mail,'163');
echo substr($mail,7);
echo substr($mail, strpos($mail, '@')+1);
$arr = explode(&@&,$mail);
echo $arr[1];
69. PHP 中的注释的写法,要列出三种?
注释内容&C 风格的单行注释
注释内容&unix 风格的单行注释
注释内容 */&C 风格的多行注释
70. 如何在一个 php 函数中使用具有全局属性的变量,说出两种方式?
global $a 或者 $GLOBALS['a']
71. 若$aa='aa';则 print('aa is \'aa\''.&
&)会输出什么?
aa is 'aa'
72. 如何把$a = ‘123’转化成 123,列出两种方式?
$a = '123';
$a = (int)$a;
$a = intval($a);
settype($a,'int');
相关题目:字符串怎么转成整数,有几种方法?怎么实现?
强制类型转换: (整型)字符串变量名;直接转换:settype(字符串变量,整型);intval(字符串变量);
73. 说说 break 和 continue 可以用在哪些语句里,并且列出二者的区别?
break 和 continue 可以用在 switch 语句中,或是循环结构中
它们的区别主要是体现在循环语句中,break 表示 跳出整个循环,不再执行,循环将终止,而 continue 则表示跳出本次循环,继续下一次的循环,不会终止循环。
74. 函数中的默认参数位置如何放置?
当使用默认参数时,任何默认参数必须放在任何非默认参数的右侧;否则,函数将不会按照预期的情况工作。
75. 如何往一个数组后面添加一个值?列出两种方式?
$arr[ ] = $
array_push($arr, $value);
[!!!]76. 说出数组涉及到的常用函数。
array --声明一个数组
count -- 计算数组中的单元数目或对象中的属性个数
foreach -- 遍历数组
list -- 将数组中元素的值赋值给变量,批量声明变量
explode -- 将字符串转成数组
implode -- 将数组转成一个新字符串
array_merge -- 合并一个或多个数组
is_array -- 检查是否是数组
print_r -- 输出数组
sort -- 数组排序
array_keys -- 返回数组中所有的键名
array_values -- 返回数组中所有的值
key -- 从关联数组中取得键名
[!!!]77. 字符串的常用函数?
trim()-- 去除字符串首尾处的空白字符(或者其他字符)
strlen()-- 字符串长度
substr()-- 截取字符串
str_replace()-- 替换字符串函数
strstr()-- 查找字符串的首次出现位置,返回 第一次出现的位置开始到结尾的字符串
explode()-- 将字符串分割成数组
implode()-- 将数组分割成字符串
str_repeat() -- 重复一个字符串
addslashes() -- 转义字符串
htmlspecialchars() -- HTML 实体转义
78. 以下代码的执行后是,$result 值为:(奇矩互动)
$srcArray=array('a','b','c','d');
$randValue=array_rand($srcArray);
$result=is_string($randValue);
mixed array_rand( array $input [, int $num_req ] )
从数组中随机取出一个或多个单元,它接受 input 作为输入数组和一个可选的参数num_req,指明了你想取出多少个单元 - 如果没有指定,默认为 1。
如果你只取出一个,array_rand() 返回一个随机单元的键名,否则就返回一个包含随机键名的数组。
所以使用 array_rand 函数,返回结果要么是键名,要么是数组,在这个例子中,数组是索引数组,所以返回的是整型。
79. 以下代码的执行后是,$result 值为: (奇矩互动)
$result = 1;
if (in_array($a,array('1'))) {
$result = 2;
}elseif ($a == '1') {
$result = 3;
}elseif ($a == '01') {
$result = 4;
$result = 5;
80. php 函数名是否区分大小写? (奇矩互动)
函数名是大小写无关的,不过在调用函数的时候,通常使用其在定义时相同的形式。
81.以下代码的执行后是,$result 值为:(奇矩互动)
$result = is_null($x);
is_null -- 检测变量是否为 NULL,如果变量是 null 则返回 TRUE,否则返回 FALSE。
在下列情况下一个变量被认为是 NULL:
被赋值为 NULL尚未被赋值unset()
82. 翻转字符串中的单词,字符串仅包含大小写字母和空格,单词间使用空格分隔。如 :输入&This is PHP&,输出&PHP is This&(非必要请不要使用 PHP 自带函数) (小米)
function reverse($str)
$arr = explode(' ',$str);
$arr = array_reverse($arr);
return implode(' ',$arr);
$str = 'This is PHP';
echo reverse($str);
83. 请列举出你所知道的全局环境变量 (亿邮)
$_REQUEST;
$_SESSION;
84. 设有这样一个数组$a=array(array(id=&0),array(id=&1),array(id=&2)......)id=&0-10000,请问你如何使用 PHP 判断 id=&500 是否在这个数组内? (亿邮)
使用 in_array 函数,代码如下:
$a = array(
array('id' =& 0),
array('id' =& 1),
array('id' =& 2),
array('id' =& 3),
array('id' =& 4),
array('id' =& 500)
$b = array('id' =& 500);
if (in_array($b,$a)) {
echo &Yes&;
echo &No&;
85. 在 PHP 中两个数组怎么连接合并在一起 (亿邮)
使用 array_merge()函数
86. 运行以上代码后$a $b $c 分别是? (卓望)
$a = $b = $c = 0;
$a = $b && $c;
a为false,b
1. strlen( )与 mb_strlen( )的作用分别是什么(新浪网技术部)
strlen和mb_strlen都是用于获取字符串长度。
strlen只针对单字节编码字符,也就是说它计算的是字符串的总字节数。如果是多字节编码,如 gbk 和 utf-8,使用 strlen 得到是该字符的总字节数;
可以使用mb_strlen获取其字符个数,使用mb_strlen 要注意两点,一是要开启 mbstring 扩展,二是要指定字符集。
strlen函数不管是字符串是单字节编码还是多字节编码,函数返回的结果都是字符串的总字节数。mb_strlen函数当字符串是单字节编码时,函数返回的结果是字符串的总字节数。当字符串是多字节编码时,函数返回的结果是字符串的个数。
mb_strlen函数在没有指定字符编码时,表示使用默认字符编码,即单字节编码,函数返回的是字符串的总字节数。PHP默认是单字节编码(内部字符编码),多字节编码方式有gbk、utf-8等。
header('Content-Type:text/charset=utf-8');
$str1 =&duang~&;
echo strlen($str1);
echo &&br /&&;
echo mb_strlen($str1);
echo &&br /&&;
echo mb_strlen($str1,'utf-8');
echo &&hr /&&;
$str2 = &你是我的小苹果&;
echo strlen($str2);
echo &&br /&&;
echo mb_strlen($str2);
echo &&br /&&;
echo mb_strlen($str2,'utf-8');
相关题目 1:实现中文字串截取无乱码的方法。
方法一,使用 php 内置函数 mb_substr()
方法二,自定义函数,以 utf-8 为例,如下:
header('Content-Type:text/charset=utf-8');
$str = &你是我的温暖阳光&;
echo mb_substr($str, 2,4,'utf-8');
$str string 要处理的字符串
$start int 从哪个位置开始截取
$length int 要截取字符的个数
string 截取后得到的字符串
function substr_utf8($str,$start,$length = null)
$sep = &&;
$arr = array_slice(preg_split(&//u&, $str,-1,PREG_SPLIT_NO_EMPTY), $start,$length);
return join($sep,$arr);
$str = &你是我的温暖阳光&;
echo substr_utf8($str,2,4);
相关题目2:如何求解字符串“中国2北333京”的字符数(一个中文一个字符),并找到第四个字符“北”
方法一,使用php内置函数,确保配置中已打开mbstring扩展
方法二,自定义函数实现求其长度,截取使用上面定义的substr_utf8
header('Content-Type:text/charset=utf-8');
$str = &中国2北333京&;
echo mb_strlen($str,'utf-8');
echo mb_substr($str, 3,1,'utf-8');
$str string 要处理的字符串
$start int 从哪个位置开始截取
$length int 要截取字符的个数
string 截取后得到的字符串
function substr_utf8($str,$start,$length = null)
$sep = &&;
$arr = array_slice(preg_split(&//u&, $str,-1,PREG_SPLIT_NO_EMPTY), $start,$length);
return join($sep,$arr);
$str string 要处理的字符串
int 字符串的长度或字符个数
function strlen_utf8($str)
return count(preg_split(&//u&, $str,-1,PREG_SPLIT_NO_EMPTY));
$str = &中国2北333京&;
echo strlen_utf8($str);
echo substr_utf8($str,3,1);
2. 下列哪个函数是用正则表达式将字符串分割到数组中 ( )
B. implode
C. explode
3. 写出下列程序的输出结果(新浪网技术部)
$y = ($x % 7) * 16;
$z = $x & $y ? 1 : 0;
4. 写出下列几个预定义全局变量的作用 (新浪网技术部)
$_SERVER['DOCUMENT_ROOT']//当前运行脚本所在的文档根目录
$_SERVER['HTTP_HOST ']//当前请求的 Host: 头部的内容
$_SERVER['REMOTE_ADDR']//正在浏览当前页面用户的 IP 地址
$_SERVER['HTTP_REFERER']//链接到当前页面的前一页面的 URL 地址
$_SERVER['SERVER_NAME']//当前运行脚本所在服务器主机的名称
$_FILES //包含有所有上传的文件信息
S_FILES['userfile']['name']//客户端机器文件的原名称
$_FILES['userfile']['type']//文件 MIME 类型,如果浏览器提供此信息的话,如“image/gif”。
$_FILES['userfile']['size']//已上传文件的大小,单位为字节
$_FILES['userfile']['tmp_name']//文件被上传后在服务端储存的临时文件名
$_FILES['userfile']['error']//和该文件上传相关的错误代码
5. include 和 require 都能把另外一个文件包含到当前文件中,他们有什么区别?Include 和include_once 又有什么区别?(新浪网技术部)
二者区别只有一个,那就是对包含文件的需求程度。include 就是包含,如果被包含的文件不存在的话,那么则会提示一个错误,但是程序会继续执行下去。而 require 意思是需要,如果被包含文件不存在或者无法打开的时候,则会提示错误,并且会终止程序的执行。
这两种结构除了在如何处理失败之外完全一样。
once 的意思是一次,那么 include_once 和 require_once 表示只包含一次,避免重复包含。
相关题目 1:What is the difference between include & include_once? include & require?(Yahoo)
相关题目 2:语句 include 和 require 都能把另外一个文件包含到当前文件中,它们的区
别是_;为了避免多次包含同一文件,可以用语句_来代替它们。
在如何处理失败时,include()产生一个警告而require()则导致一个致命错误;require_once()/include_once()
相关题目 3:What functions can you use to add library code to the currently running script?(Yahoo)
include、require
6. 用最少的代码写一个求 3 值最大值的函数. (51.com 笔试题)
function maxnum($a,$b,$c)
return $a & $b ? ($a & $c ? $a : $c) : ($b & $c ? $b : $c);
echo maxnum(24,15,8);
7. 简述 POST 和 GET 传输的最大容量分别是多少? (51.com 笔试题)
POST 根据你 php.ini 文件配置(默认是 8M)
GET 的话大小限制在 2KB
相关题目:表单中 get 与 post 提交方法的区别?
get 是发送请求 HTTP 协议通过 url 参数传递进行接收,而 post 是实体数据,可以通过表单提交大量信息。
8. 有三个 php 文件位于同一目录下,内容如下所示。使用浏览器访问 c.php,请问是否存在问题。如果存在问题,请指出修正方法并写出浏览器查看效果 ,如果不存在问题,请写出浏览器查看效果(酷讯 PHP 工程师笔试题)
function fa(){
echo &in Function A\n&;
include 'a.php';
function fb() {
echo &in Function B\n&;
include 'a.php';
include 'b.php';
答案:存在问题,a.php 被包含了两次,导致 fa()函数重复定义,使用 include_once 避免重复包含。
9. echo(),print(),print_r()的区别?(新浪)
echo, print是PHP语句print_r是函数,语句没有返回值,函数可以有返回值(即便没有用)
print只能打印出简单类型变量的值(如int,string)
print_r可以打印出复杂类型变量的值(如数组,对象)
echo -- 输出一个或者多个字符串
print --输出一个字符串
print_r -- 打印关于变量的易于理解的信息。
在实际使用中, print 和 echo 两者的功能几乎是完全一样。
可以这么说,凡是有一个可以使用的地方,另一个也可以使用。但是,两者之间也还是一个非常重要的区别:
在 echo 函数中,可以同时输出多个字符串,而在 print 函数中则只可以同时输出一个字符串。同时,echo函数并不需要圆括号,所以echo函数更像是语句而不像是函数。
echo 和 print 都不是函数,而是语言结构,所以圆括号都不是必需的。他们的区别在于:
(1) echo可以输出多个字符串,像下面这样:
'a','b','c';
如果你非要加上圆括号,注意写成echo ('a','b','c');是错误的,应该写成:
('a'),('b'),('c');
它没有像函数的行为,所以不能用于函数的上下文
(2) print只能输出一个字符串,它可以表现得像一个函数,比如你可以如下使用:
= print 'Hello World';
(有返回值所以能够用在更复杂的表达式中,可以判断是否输出成功等表达式)所以它能用在更复杂的表达式中。
另外,echo的效率相对比较快~
如下代码:
$a='hello ';
$b='php world!';
echo $a,$b.'&br /&';
print $a.$b.'&br /&';
print $a,$b.'&br /&';
echo 本身支持的一种语法,而.则是字符串连接操作符,使用,的效率要高一些。(少了连接运算)echo可以使用,来分隔字符串变量,也可以使用,来分隔字符串变量;print只能使用.来分隔字符串变量。echo效率比print高
echo命令和print命令相同,没有区别
echo()和print()有区别:
echo()没有返回值,与echo命令相同
print()有返回值,总是返回1
printf()和sprintf()类似,均为格式化输出,不同的是前者输出到标准输出,后者输出到变量
相关题目:What is the difference between &print()& and &echo( )&? (腾讯)
answer: print is a function,echo is a language construct
10. 用 PHP 打印出前一天的时间格式是
22:21:21。
echo date(&Y-m-d H:i:s&,time() - 3600*24);
echo &&br /&&;
echo date(&Y-m-d H:i:s&,strtotime(&-1 day&));
echo &&br /&&;
$date = strtotime(&&);
使用strtotime可以将任何字符串的时间表示(now,seconds,day,week等)转换成时间戳,仅针对英文。在实际开发的时候,strtotime非常有用,因为对于表单来说,提交的数据都是字符串。比如,“”需要将其转换成时间戳然后存到数据库中。
相关题目:求两个日期的差数,例如
的日期差数
(strtotime(&&)-strtotime(&&))/3600*24
11. 不使用第三个变量交换两个变量的值
$a = &PHP&;
$b = &MySQL&;
echo '$a='.$a.'&br /&';
echo '$b='.$b.'&br /&';
list($a,$b) = array($b,$a);
echo '$a='.$a.'&br /&';
echo '$b='.$b.'&br /&';
echo &&hr /&&;
$a = &PHP&;
$b = &MySQL&;
echo '$a='.$a.'&br /&';
echo '$b='.$b.'&br /&';
$a = $a.'&'.$b;
$b = explode('&', $a);
$a = $b[1];
$b = $b[0];
echo '$a='.$a.'&br /&';
echo '$b='.$b.'&br /&';
请说明 php 中传值与传引用的区别。什么时候传值什么时候传引用?
变量默认总是传值赋值。
那也就是说,当将一个表达式的值赋予一个变量时,整个原始表达式的值被赋值到目标变量。这意味着,例如,当一个变量的值赋予另外一个变量时,改变其中一个变量的值,将不会影响到另外一个变量。
PHP 也提供了另外一种方式给变量赋值:引用赋值。
这意味着新的变量简单的引用(换言之,“成为其别名” 或者 “指向”)了原始变量。改动新的变量将影响到原始变量,反之亦然。使用引用赋值,简单地将一个&符号加到将要赋值的变量前(源变量)。
对象默认是传引用。
对于较大的数据,传引用比较好,这样可以节省内存的开销。
相关题目 1:What would the following code print to the browser? Why?
$num = 10;
function multipy($num){
$num = $num +10;
multipy($num);
相关题目 2:What is the difference between a reference and a regular variable? How do you pass by reference & why would you want to?(Yahoo)
reference 传送的是变量的地址而非它的值,所以在函数中改变一个变量的值时,整个应用都见到这个变量的新值。
一个 regular variable 传送给函数的是它的值,当函数改变这个变量的值时,只有这个函数才见到新值,应用的其他部分仍然见到旧值。
转换成 1,234,567,890 每 3 ???用逗号隔开的形式。(百度)
function str($str)
$str = strrev($str);
$str = chunk_split($str,3,',');
$str = strrev($str);
$str = ltrim($str,',');
echo str($str);
相关题目 1:如何实现字符串翻转?
strrev(),不过这种方法都不能解决中文字符串翻转的问题,会出错的。
header(&Content-Type:text/charset=utf-8&);
string $str
function strrev_utf8($str)
return join(&&,array_reverse(preg_split(&//u&, $str)));
$str = &悄悄是别离的笙箫&;
echo strrev_utf8($str);
相关题目 2:假设现在有一个字符串
如何使用 PHP 对它进行操作使字符串以 moc.udiab.输出? (亿邮)
$str = &&;
echo strrev(str_replace('www','',$str));
14. 用 PHP 写出显示客户端 IP 与服务器 IP 的代码。
客户端 IP:$_SERVER[&REMOTE_ADDR&]
服务器端 IP:$_SERVER[&SERVER_ADDR&]
15. 简述如何得到当前执行脚本路径,包括所得到参数。
获取当前执行脚本路径使用$_SERVER[&SCRIPT_FILENAME&]或__FILE__
获取参数,使用$_SERVER[&QUERY_STRING&]
16. What is the difference between foo() & @foo()?(Yahoo)
foo() 会执行这个函式,任何解译错误、语法错误、执行错误都会在页面上显示出来。
@foo() 在执行这个函式时,会隐藏所有上述的错误讯息。
很多应用程序都使用 @mysql_connect() 和 @mysql_query 来隐藏&&的错误信息,这是不对的,因为错误不该被隐藏,你必须妥善处理它们,可能的话解决它们。
17. 下面哪个选项没有将 john 添加到 users 数组中? ( 百度 )
A.&users[]=&john&;B.arrayadd(users,
C. array_push($users, &john&);
D. $users ||= &john& ;
18. 检测一个变量是否有设置的函数?是否为空的函数是?
isset 检测一个变量是否设置
empty 检测是否为空
注意二者的区别,如果 变量 是非空或非零的值,则 empty() 返回 FALSE。换句话说,&&、0、&0&、NULL、FALSE、array() 以及没有任何属性的对象都将被认为是空的。
isset是检测变量是否设置/定义,empty是检测已定义的变量的值是否为空。
19. 在 PHP 中,当前脚本的名称(不包括路径和查询字符串)记录在预定义变量______中;而链接到当前页面的的前一页面 URL 记录在预定义变量______中。
当前脚本名称:$_SERVER[&PHP_SELF&]或者&SERVER[&SCRIPTNAME&];链接到当前页面的前一页面的URL地址:_SERVER[&HTTP_REFERER&]。
20. sort()、assort()、和 ksort() 有什么分别?它们分别在什么情况下使用?
sort(),根据数组中元素的值,以英文字母顺序排序,索引键会由 0 到 n-1 重新编号。主要是当数组索引键的值无关紧要时用来把数组排序。
assort(),PHP 没有 assort() 函式,所以可能是 asort() 的笔误。
asort(),对数组进行排序,数组的索引保持和单元的关联。主要用于对那些单元顺序很重要的结合数组进行排序。
ksort(),根据数组中索引键的值,以英文字母顺序排序,特别适合用于希望把索引键排序的关联数组。
21. 在 PHP 中 error_reporting 这个函数有什么作用?
打开或者关闭错误报告,如:
error_reporting(0);
error_reporting(E_ALL & ~ E_NOTICE);
error_reporting(E_ALL);
相关题目:error_reporting(2047) 什么作用?(新浪)
2047 = 1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 + 256 + 512 + 1024
1 对应 E_ERROR,2 对应 E_WARNING,4 对应 E_PARSE,
8 对应 E_NOTICE,16 对应 E_CORE_ERROR,32 对应 E_CORE_WARNING
,64 对应 E_COMPILE_ERROR,128对应 E_COMPILE_WARNING,256 对应 E_USER_ERROR,
512 对应 E_USER_WARNING,1024 对应 E_USER_NOTICE。
error_reporting(2047)意味着上述错误都会显示出来。
写出以下程序的输出结果 (CBSI)
$str = 'cd';
$$str = 'hotdog';//$cd = 'hotdog';
$$str .= 'ok';//$cd .= 'ok';
相关题目:什么是可变变量?
获取一个普通变量的值作为这个可变变量的变量名。
23. 常量如何定义? 如何检测一个常量是否被定义?
定义常量:define()
检测常量是否定义:defined()
define(&TEST&,&happy new year!&);
if( defined(&TEST&)){
echo TEST;
执行程序段&?php
echo 8%(-2) ?&将输出
%为取模运算,输出 0
% $b其结果的正负取决于 $a 的符号。
((-8)%3).&&br /&&;//输出 -2
(8%(-3)).&&br /&&;//输出 2
25. 数组函数 arsort 的作用是_;语句 error_reporting(2047)的作用是_。
arsort:对数组进行逆向排序并保持索引关系
error_reporting(2047)的作用 report All errors and warnings,见 21 题中相关题目。
26. 以 Apache 模块的方式安装 PHP,在文件 http.conf 中首先要用语句_动态装载 PHP模块,然后再用语句_使得 Apache 把所有扩展名为 php
的文件都作为 PHP 脚本处理。
LoadModule php5_module &c:/php/php5apache2.dll&;
AddType application/x-httpd-php .php
27. 一个函数的参数不能是对变量的引用,除非在 php.ini 中把____设为 on.
allow_call_time_pass_reference :是否启用在函数调用时强制参数被按照引用传递,默认关闭。
28. 在 PHP 中,heredoc 是一种特殊的字符串,它的结束标志必须____顶格写,并且不能包含任何其它字符除&;&
count(&abc&); 输出什么?(新浪?)
count :计算数组中的单元数目或对象中的属性个数,通常是一个 array,任何其它类型都只有一个单元。
对于对象,如果安装了 SPL,可以通过实现 Countable 接口来调用 count()。该接口只有一个方法 count(),此方法返回 count() 函数的返回值。
如果 var 不是数组类型或者实现了 Countable 接口的对象,将返回 1,有一个例外,如果 var 是 NULL 则结果是 0。
相关题目:What will be the output of the following PHP code:(腾讯)
echo count(strlen(&http://php.net&));
30. 写个函数用来对二维数组排序(新浪)
$arr array 要排序的二维数组
$row string 排序依据的某列
$type string asc表示正序,为默认值;desc表示逆序
array 返回排序后的二维数组
function array_sort($arr,$row,$type ='asc')
$arr_temp = array();
foreach ($arr as $v) {
$arr_temp[$v[$row]] = $v;
if ($type == 'asc') {
ksort($arr_temp);
} elseif($type == 'desc') {
krsort($arr_temp);
return $arr_
$person = array(
array('id'=&2,'name'=&'zhangsan','age'=&23),
array('id'=&5,'name'=&'lisi','age'=&28),
array('id'=&3,'name'=&'apple','age'=&17)
echo &&pre&before:&br /&&;
print_r($person);
echo &&/pre&&;
echo &&hr /&&;
$person2 = array_sort($person,'name');
echo &&pre&after:&br /&&;
print_r($person2);
echo &&/pre&&;
31. 写 5 个不同的自己的函数,来获取一个全路径的文件的扩展名,允许封装 php 库中已有的函数。(新浪)
function ext_name1($path){
$path_info = strrchr($path, '.');
return ltrim($path_info,'.');
function ext_name2($path){
$path_info = substr($path,strrpos($path, '.'));
return ltrim($path_info,'.');
function ext_name3($path){
$path_info = pathinfo($path);
return $path_info['extension'];
function ext_name4($path){
$arr = explode('.', $path);
return $arr[count($arr)-1];
function ext_name5($path){
$pattern = '/^[^\.]+\.([\w]+)$/';
return preg_replace($pattern, '${1}', basename($path));
$path = str_replace('\\', '/', __FILE__);
echo &$path&br /&&;
echo ext_name1($path);echo &&br /&&;
echo ext_name2($path);echo &&br /&&;
echo ext_name3($path);echo &&br /&&;
echo ext_name4($path);echo &&br /&&;
echo ext_name5($path);echo &&br /&&;
32. PHP 的意思,它能干些什么?
PHP( Hypertext Preprocessor,超文本预处理器的字母缩写)是一种被广泛应用的开放源代码的多用途脚本语言,它可嵌入到 HTML 中,尤其适合 web 开发。
PHP 主要是用于服务端的脚本程序,因此可以用 PHP 来完成任何其它的 CGI 程序能够完成的工作,例如收集表单数据,生成动态网页,或者发送/接收Cookies。但 PHP 的功能远不局限于此。
PHP 脚本主要用于以下三个领域:
服务端脚本。这是 PHP 最传统,也是最主要的目标领域。命令行脚本。可以编写一段 PHP 脚本,并且不需要任何服务器或者浏览器来运行它。通过这种方式,仅仅只需要 PHP 解析器来执行。编写桌面应用程序。
33. Name a few ways to output (print) a block of HTML code in PHP?(Yahoo)
你可以使用 PHP 中任何一种输出语句,包括 echo、print、printf,大部分人都使用如下例的 echo:
&My string $variable&;
你也可以使用这种方法:
echo &&&END
This text is written to the screen as output and this $variable is parsed too. If you wanted you
can have &span& HTML tags in here as well.&/span& The END; remarks must be on a line of itsown, and can
34. 写出以下程序的输出结果 (CBSI)
$a = $b & $c ? 4 : 5;
输出结果为 4
= array('james', 'tom', 'symfony');请打印出第一个元素的值,并请将数组的值用','号分隔并合并成字串输出。
打印第一个元素:echo
以’,’合并成字符串:echo
implode(',',$arr);
36.&a=′abcdef′;请取出a
的值并打印出第一个字母
echo $a{0} 或 echo $a[0]
相关题目:string=&abcdefg&,那么string{4}的值是?
值是 e
37. What does === do? What's an example of something that will give true for '==', but not'==='? (Yahoo)
=== 表示全等,是指的两个变量的值和类型都相等。
如 if (strpos('abc','a') == false) 和 if (strpos('abc','a') === false)
38. Which of the following snippets prints a representation of 42 with two decimal places?(腾讯)
A. printf(&%.2d\n&, 42);
B. printf(&%1.2f\n&, 42);
C. printf(&%1.2u\n&, 42);
39. Given&text=′Content-TypeType:text/xml′;Whichofthefollowingprints′text/xml′?(腾讯)A.printsubstr(text,
strchr(text,′:′));B.printsubstr(text,
strchr(text,′:′)+1);C.printsubstr(text,
strpos(text,′:′)+1);D.printsubstr(text,
strpos(text,′:′)+2);E.printsubstr(text,
0, strchr($text, ':'));
$text = 'Content-Type:text/xml';
print substr($text, strchr($text,':'));
echo &&br /&&;
print substr($text, strchr($text,':')+1);
echo &&br /&&;
print substr($text, strpos($text,':')+1);
echo &&br /&&;
print substr($text, strpos($text,':')+2);
echo &&br /&&;
print substr($text, 0,strchr($text,':'));
echo &&br /&&;
40. What is the value of $a?
$a = in_array('01',array('1')) == var_dump('01' == 1);
41. What is the value of $result in the following PHP code? (腾讯)
function timesTwo($int)
$int = $int * 2;
$result = timesTwo($int);
answer: NULL
42. What is the best all-purpose way of comparing two strings? (腾讯)
A. Using the strpos function
B. Using the == operator
C. Using strcasecmp()
D. Using strcmp()
43. 运行以下程序,$a 的值是多少?
$a = &hello&;
unset($b);
$b = &world&;
echo $a,$b;
answer:hello
44. 运行以下程序,$b 的值是多少?
$b = $a++;
echo $a,$b;
45. 运行以下程序,$x 的值是多少?
$array = array();
$x = empty($array);
echo $x ? &true&:&false&;
answer:ture
46. 将字符 09 转换成十进制数字。(百度)
使用 intval 函数,echo intval(&09&),或者使用 int 强制类型转换。
47. 请 写 一 个 函 数 , 实 现 以 下 功 能 : 字 符 串 &open_door& 转 换 成 &OpenDoor& 、&make_by_id& 转换成 &MakeById&。
$str string 要转换的字符串
string 转换后的字符串
function change_str($str){
$arr = explode('_',$str);
$arr = array_map('ucfirst', $arr);
return implode('', $arr);
$str1 = 'open_door';
$str2 = 'make_by_id';
echo change_str($str1);
echo change_str($str2);
48. 要求写一段程序,实现以下数组arr1转换成数组arr2:
$arr1 = array(
'0' =& array('fid' =& 1,'tid' =&1,'name' =& 'Name1'),
'1' =& array('fid' =& 1,'tid' =&2,'name' =& 'Name2'),
'2' =& array('fid' =& 1,'tid' =&5,'name' =& 'Name3'),
'3' =& array('fid' =& 1,'tid' =&7,'name' =& 'Name4'),
'4' =& array('fid' =& 3,'tid' =&9,'name' =& 'Name5')
$arr_tmp = array();
$arr2 = array();
foreach ($arr1 as $v) {
$arr_tmp[$v['fid']][] = array_slice($v, 1);
foreach ($arr_tmp as $v) {
$arr2[] = $v;
print_r($arr1);
print_r($arr2);
49. 如何将一个数组元素的排列顺序反转过来(例如以下代码反转以后的顺序是: array ('d','c', 'b', 'a'))? (选择 2 个答案)
$array = array ('a', 'b', 'c', 'd');
A. array_flip()
B. array_reverse()
D. rsort()
50.&val=max(′string′,array(2,5,7),42);val
值为
array(2,5,7)
max 用法示例如下:
echo max(1,3,5,6,7);
echo &&br /&&;
echo max(array(2,4,5));
echo &&br /&&;
echo max(0,'hello');
echo &&br /&&;
echo max('hello','0');
echo &&br /&&;
echo max(-1,'hello');
echo &&br /&&;
$val = max(array(2,4,8),array(2,5,7));
var_dump($val);
echo &&br /&&;
$val = max('string', array(2, 5, 7), 42);
var_dump($val);
51. 定义常量 MYPI=3.14_________________________;
define(&MYPI&,3.14);
52. 简述单引号和双引号的用法
双引号串中的内容可以被解释而且替换,而单引号串中的内容总被认为是普通字符。
53. Switch 完整语法和注意事项
使用 Switch 语句可以避免冗长的 if..elseif..else 代码块,case只能处理整数,或者能像整数一样运算的类型,比如char,使用时case 后用'',注意 break不能少,default是为了处理一些之前没有包含到的情况,这样更为安全。
54. 用 PHP 编写代码在页面输出当前的北京时间,格式为 “ 09:22:03”
date_default_timezone_set('PRC');
echo date(&Y-m-d H:i:s&,time());
55. 简述 GBK、GB2312、BIG5 、GB18030
GB2312 支持的汉字较少,GBK 是相比 GB2312 汉字更为丰富,包括全部中日韩汉字,GB18030 相比 GBK 增加了一些少数名族汉字汉字库更为多样,但是常人很难用到,一般简体中文使用 GBK 而繁体中文使用 BIG5。
56. 计算某段字符串中某个字符出现的次数(例如 : gdfgfdgd59gmkblg 中 g 的次数)
$text = 'gdfgfdgd59gmkblg';
echo substr_count ( $text,'g');
57. 以下语句可能存在错误,如果存在错误请指出什么错误(每个语句单独考虑)
$val = 333;// error,print_r 是一个函数,需加上括号,如果是 print 则可以
print_r($val
= 333);&// 正确
+= ($b = 4) + 5;// notice,a未定义,但可以正确运行‘foo[bar]
= 'enemy';//
notice,最好 bar 加上引号function x($a = &1&, $b){}`// 无,但给参数默认值应尽量从右向左
58. 写出如下程序的输出结果(小米)
header(&Content-type:text/charset=utf-8&);
$str1 = null;
$str2 = false;
echo $str1 == $str2 ? '相等' : '不相等';
$str3 = '';
$str4 = 0;
echo $str3 == $str4 ? '相等' : '不相等';
$str5 = 0;
$str6 = '0';
echo $str1 === $str2 ? '相等' : '不相等';
59. 写出如下程序的输出结果
$a1 = null;
$a2 = false;
$a5 = '0';
$a6 = 'null';
$a7 = array();
$a8 = array(array());
echo empty($a1) ? 'true' : 'false';
echo '&br /&';
echo empty($a2) ? 'true' : 'false';
echo '&br /&';
echo empty($a3) ? 'true' : 'false';
echo '&br /&';
echo empty($a4) ? 'true' : 'false';
echo '&br /&';
echo empty($a5) ? 'true' : 'false';
echo '&br /&';
echo empty($a6) ? 'true' : 'false';
echo '&br /&';
echo empty($a7) ? 'true' : 'false';
echo '&br /&';
echo empty($a8) ? 'true' : 'false';
60. 写出如下程序的输出结果
$test = 'aaaa';
unset($test);
61. 写出如下程序的输出结果
$count = 5;
function get_count()
static $count = 0;
return $count++;
++$
echo get_count();
echo get_count();
在 PHP 中,作用域是不重叠的,函数之外的是全局变量,函数内部定义的则是局部变量,二者是两个不同的变量,除非在函数内使用 global 显式声明使用全局变量或直接用$_GLOBALS 来引用。
62. 写出如下程序的输出结果
$GLOBALS['var1'] = 5;
$var2 = 1;
function get_value()
global $var2;
$var1 = 0;
return $var2++;
get_value();
echo $var1;
echo $var2;
63. 写出如下程序的输出结果
function get_arr()
unset($arr[0]);
$arr1 = array(1,2);
$arr2 = array(1,2);
get_arr(&$arr1);
get_arr($arr2);
echo count($arr1);
echo count($arr2);
64.&arr=array(′james′,′tom′,′symfony′);请将′jack′添加到arr
数组的开头,并把 jack 打印出来。
array_unshift($arr,’jack’);
echo $arr[0];
65.&arr=array(′james′,′tom′,′symfony′);请将arr
数组的值用 ’,’分割并合并成字符串输出?
implode(‘,’,$arr);
66.&str=‘jack,james,tom,symfony′;请将str
用’,’分割,并把分割后的值放到$arr 数组中?
= explode(‘,’,$str);
67.&arr=array(3,7,2,1,′d′,′abc′);请将arr
按照从大到小的顺序排序,并保持其键值不变?
arsort($arr);
print_r($arr);
68. $mail = “”;
请将此邮箱的域()取出来并打印,看最多能写出几种方法?
echo strstr($mail,'163');
echo substr($mail,7);
echo substr($mail, strpos($mail, '@')+1);
$arr = explode(&@&,$mail);
echo $arr[1];
69. PHP 中的注释的写法,要列出三种?
注释内容&C 风格的单行注释
注释内容&unix 风格的单行注释
注释内容 */&C 风格的多行注释
70. 如何在一个 php 函数中使用具有全局属性的变量,说出两种方式?
global $a 或者 $GLOBALS['a']
71. 若$aa='aa';则 print('aa is \'aa\''.&
&)会输出什么?
aa is 'aa'
72. 如何把$a = ‘123’转化成 123,列出两种方式?
$a = '123';
$a = (int)$a;
$a = intval($a);
settype($a,'int');
相关题目:字符串怎么转成整数,有几种方法?怎么实现?
强制类型转换: (整型)字符串变量名;直接转换:settype(字符串变量,整型);intval(字符串变量);
73. 说说 break 和 continue 可以用在哪些语句里,并且列出二者的区别?
break 和 continue 可以用在 switch 语句中,或是循环结构中
它们的区别主要是体现在循环语句中,break 表示 跳出整个循环,不再执行,循环将终止,而 continue 则表示跳出本次循环,继续下一次的循环,不会终止循环。
74. 函数中的默认参数位置如何放置?
当使用默认参数时,任何默认参数必须放在任何非默认参数的右侧;否则,函数将不会按照预期的情况工作。
75. 如何往一个数组后面添加一个值?列出两种方式?
$arr[ ] = $
array_push($arr, $value);
[!!!]76. 说出数组涉及到的常用函数。
array --声明一个数组
count -- 计算数组中的单元数目或对象中的属性个数
foreach -- 遍历数组
list -- 将数组中元素的值赋值给变量,批量声明变量
explode -- 将字符串转成数组
implode -- 将数组转成一个新字符串
array_merge -- 合并一个或多个数组
is_array -- 检查是否是数组
print_r -- 输出数组
sort -- 数组排序
array_keys -- 返回数组中所有的键名
array_values -- 返回数组中所有的值
key -- 从关联数组中取得键名
[!!!]77. 字符串的常用函数?
trim()-- 去除字符串首尾处的空白字符(或者其他字符)
strlen()-- 字符串长度
substr()-- 截取字符串
str_replace()-- 替换字符串函数
strstr()-- 查找字符串的首次出现位置,返回 第一次出现的位置开始到结尾的字符串
explode()-- 将字符串分割成数组
implode()-- 将数组分割成字符串
str_repeat() -- 重复一个字符串
addslashes() -- 转义字符串
htmlspecialchars() -- HTML 实体转义
78. 以下代码的执行后是,$result 值为:(奇矩互动)
$srcArray=array('a','b','c','d');
$randValue=array_rand($srcArray);
$result=is_string($randValue);
mixed array_rand( array $input [, int $num_req ] )
从数组中随机取出一个或多个单元,它接受 input 作为输入数组和一个可选的参数num_req,指明了你想取出多少个单元 - 如果没有指定,默认为 1。
如果你只取出一个,array_rand() 返回一个随机单元的键名,否则就返回一个包含随机键名的数组。
所以使用 array_rand 函数,返回结果要么是键名,要么是数组,在这个例子中,数组是索引数组,所以返回的是整型。
79. 以下代码的执行后是,$result 值为: (奇矩互动)
$result = 1;
if (in_array($a,array('1'))) {
$result = 2;
}elseif ($a == '1') {
$result = 3;
}elseif ($a == '01') {
$result = 4;
$result = 5;
80. php 函数名是否区分大小写? (奇矩互动)
函数名是大小写无关的,不过在调用函数的时候,通常使用其在定义时相同的形式。
81.以下代码的执行后是,$result 值为:(奇矩互动)
$result = is_null($x);
is_null -- 检测变量是否为 NULL,如果变量是 null 则返回 TRUE,否则返回 FALSE。
在下列情况下一个变量被认为是 NULL:
被赋值为 NULL尚未被赋值unset()
82. 翻转字符串中的单词,字符串仅包含大小写字母和空格,单词间使用空格分隔。如 :输入&This is PHP&,输出&PHP is This&(非必要请不要使用 PHP 自带函数) (小米)
function reverse($str)
$arr = explode(' ',$str);
$arr = array_reverse($arr);
return implode(' ',$arr);
$str = 'This is PHP';
echo reverse($str);
83. 请列举出你所知道的全局环境变量 (亿邮)
$_REQUEST;
$_SESSION;
84. 设有这样一个数组$a=array(array(id=&0),array(id=&1),array(id=&2)......)id=&0-10000,请问你如何使用 PHP 判断 id=&500 是否在这个数组内? (亿邮)
使用 in_array 函数,代码如下:
$a = array(
array('id' =& 0),
array('id' =& 1),
array('id' =& 2),
array('id' =& 3),
array('id' =& 4),
array('id' =& 500)
$b = array('id' =& 500);
if (in_array($b,$a)) {
echo &Yes&;
echo &No&;
85. 在 PHP 中两个数组怎么连接合并在一起 (亿邮)
使用 array_merge()函数
86. 运行以上代码后$a $b $c 分别是? (卓望)
$a = $b = $c = 0;
$a = $b && $c;
a为false,b
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:21000次
排名:千里之外
原创:64篇
转载:100篇
(2)(46)(98)(19)
(window.slotbydup = window.slotbydup || []).push({
id: '4740887',
container: s,
size: '250,250',
display: 'inlay-fix'

我要回帖

更多关于 怎么查看ip地址 的文章

 

随机推荐