많은 친구들이 PHP 면접 질문을 하는 것을 보고 몇 가지 면접 질문을 모아봤습니다. 모두 2017년 최신 질문들입니다. 여러분의 실력 향상에 도움이 되기를 바라겠습니다. 또한, 원하시는 회사에 합격하시길 바라겠습니다.
이 글은 2017년 최신 PHP 면접 질문을 좀 더 자세히 모아 분석한 글입니다. 참고할 수 있도록 모든 사람과 공유하세요. 자세한 내용은 다음과 같습니다.
1. PHP를 사용하여 2006-5-10 22:21:21(2포인트)
$a = date(" 형식으로 전날 시간을 출력합니다. Y-m-d H:i:s", strtotime ("-1일"));
print_r($a);
2. echo(),print(),print_r()의 차이점(3점)
echo와 print는 동일한 기능이 아닙니다. 그들은 언어 구조입니다.
int print(string $arg), 단 하나의 매개변수
echo arg1, arg2; 여러 매개변수를 출력하고 void를 반환할 수 있습니다.
echo와 print는 구조가 아닌 문자열을 인쇄합니다.
print_r은 구조를 인쇄할 수 있습니다.
예를 들어
$arr = array("key"=>"value");
print_r($arr);
3 . HTML과 PHP를 별도로 사용할 수 있게 해주는 템플릿(1점)
smarty, phplib
4. 버전 관리에 사용되는 도구는 무엇인가요?(1점)
svn, git, cvs
5. 문자열 반전을 달성하는 방법은 무엇입니까?(3점)
영어:
strrev($a)
중국어 또는 기타 텍스트:
중국어: GB2312, 코드는 GB2312
함수 역방향($str)
{
$ret = "";
len=mbstrwidth(str,"GB2312");
for(i=0;i< len;i++)
{
arr[]=mbsubstr(str, $i, 1, "GB2312 ");
}
return implode("", array_reverse($arr));
}
print_r(reverse("Hello")) ;
6. MYSQL 데이터베이스를 최적화하는 방법. (4점, 많이 쓸수록 더 많은 것을 얻을 수 있습니다)
문 측면:
1 인덱스를 사용하여 쿼리 효율성 높이기
2 쿼리 문 최적화 및 인덱스 적중률 향상
데이터베이스 측면:
1 하위 구성 데이터베이스 저장 및 확장 기능을 향상시키기 위한 데이터베이스 및 테이블
2 필요에 따라 다른 저장 엔진을 사용하세요
7. PHP의 의미(1포인트 전송)
Hypertext PreProcessor
Hypertext PreProcessor
8 . MYSQL 현재 시간을 가져오는 함수는?, 날짜 형식을 지정하는 함수는 (2포인트)
CURRENT_TIMESTAMP()
DATE_FORMAT()
select DATE_FORMAT("2011-11-21 10:10:10 ", "%Y- %m-%d");
9. 중국어 텍스트 문자열을 잘못된 문자 없이 가로채는 방법입니다. (3점)
mb_substr($str, 1, 1, "GB2312");
10. 버전 관리 소프트웨어를 사용해 본 적이 있습니까? 그렇다면 사용하는 버전 관리 소프트웨어의 이름은 무엇입니까? 1점)
svn
git
11. 템플릿 엔진을 사용해 본 적이 있나요? 그렇다면 사용하는 템플릿 엔진의 이름은 무엇인가요? (1점)
smarty
12. 가장 인기 있는 템플릿 엔진에 대해 간략하게 설명해주세요. 자랑스러운 개발 작업(4점)
XXX
13 트래픽이 많은 웹사이트의 경우 트래픽 문제를 해결하기 위해 어떤 방법을 사용하시나요?(4점) 1 캐시를 효율적으로 사용하고 캐시 적중률 높이기
2 로드 밸런싱 사용
3 CDN을 사용하여 정적 파일 저장 및 가속화
4 데이터베이스 사용량 줄이기 아이디어
5 통계적 병목 현상이 있는 위치 확인
14. PHP를 사용하여 클라이언트 IP와 서버 IP의 코드에 대한 표시 1포인트를 작성합니다.)
$_SERVER["REMOTE_ADDR"]
$_SERVER["SERVER_ADDR"]
15. include 및 require? 동일한 파일에 대해 (?) 문을 사용하여 대체할 수 있습니까? (2점)
실패한 경우:
include는 경고를 생성하고 require는 직접 오류 인터럽트를 생성합니다.
require는 실행 전에 로드됩니다. 런타임에 포함합니다. Load require_onceinclude_once16 SESSION의 생존 시간을 수정하는 방법(1포인트).
17. PHP 연구소 홈페이지와 같은 웹페이지 주소: http: //www.jb51.net/index.html, 콘텐츠를 얻는 방법($1 포인트)
file_get_contents
18. HTTP 1.0에서 상태 코드 401의 의미는 (?)입니다. "파일을 찾을 수 없습니다."라는 프롬프트가 반환되면 헤더 함수를 사용할 수 있으며 해당 구문은 (?)입니다.
$a = <
와 같은 다른 서버에 의존할 수 있습니다. (1점) )
22를 입력하고, 게시물이 가장 많은 10명의 이름을 SQL로 작성하고, 다음 표를 사용하세요: 멤버 (ID, 사용자 이름, 게시물, 패스, 이메일) (2포인트)
회원 중에서 상위 10개의 ID, 사용자 이름을 게시물 순서대로 선택하세요. desc
23. PHP에서 값 전달과 참조 전달의 차이점을 설명해주세요. 언제 값으로 전달해야 하는지, 언제 참조로 전달해야 하는지?(2점)
& 참조로 전달하는 것을 의미합니다.
참조로 함수의 매개변수를 전달하면 매개변수가 변경됩니다.
일반적으로 출력이 여러 개 있는 경우 참조 사용을 고려할 수 있습니다.
24.PHP에서 error_reporting 기능은 무엇인가요? (1점)
오류 표시 수준을 설정합니다
25. 정답입니다 (2점)
$str = "jianfeng@126.com";
regex="([a−z0−9.−]+)@([da−z.−]+).([ a−z.]2, 6)" ; //Regular
return preg_match(regex,str)
26. 가져온 매개변수를 포함하여 현재 실행 스크립트 경로를 가져오는 방법을 간략하게 설명합니다. (2포인트)
$argc --매개변수 개수 가져오기
$argv --매개변수 목록 가져오기
27 SESSION의 생존 시간을 수정하는 방법(1포인트)
session_set_cookie_params
28 JS 폼의 팝업 대화상자 기능은 무엇인가요? (2점)
confirm()
promopt()
focus()
29 JS의 리디렉션 기능은 ?외부 JS 파일을 도입하는 방법(2점)
window.location.href="#"
30, foo()와 @foo()의 차이점은 무엇입니까? (1점)
@는 모든 경고를 나타내고
31. 메소드와 속성이 없는 "myclass"라는 클래스? (1포인트)
class myclass
{
}
32. "myclass"라는 객체를 인스턴스화하는 방법은 무엇입니까? (1포인트)
$myclass = new myclass();
33. 클래스의 속성에 어떻게 액세스하고 설정합니까? (2점)
class A
{
public $name = "A";
}
$a = new A();
n= a->name;
print_r($n);
34,
mysql_fetch_row()과 mysql_fetch_array의 차이점은 무엇입니까? (1점) mysql_fetch_array()는 mysql_fetch_row( ) 확장 버전입니다. 데이터를 숫자 인덱스로 배열에 저장하는 것 외에도 필드 이름을 키로 사용하여 데이터를 연관 인덱스로 저장할 수도 있습니다.
mysql_connect("localhost", "mysql_user", "mysql_password") or
die("연결할 수 없습니다: " . mysql_error());
mysql_select_db("mydb"); $result = mysql_query("SELECT id, name FROM mytable");
while (row=mysqlfetcharray(result, MYSQL_ASSOC)) {
printf ("ID: %s 이름: %s", row["id "],row["name"]);
}
mysql_free_result
35. GD 라이브러리는 어떤 용도로 사용되나요? (1점)
동적 열기 이미지 처리 라이브러리
36. PHP에서 HTML 코드를 입력하는 몇 가지 방법을 알려주세요. (1점)
echo "{html}"
echo < {html} EOD; 37. 다음 중 파일을 열고 쓸 수 있는 함수는 무엇인가요? ? (1점) c (a) fget() (b) file_open() (c) fopen() (d) open_file() (a) $users[] = 'john'; (b) array_add($users,'john'); (c) array_push($users,' john') ; (d) $users ||= 'john'; $num = 10; function Multiply(){ num=num * 10; } multiply(); echo $num; ?> 테이블 이름 UserName Tel Content Date Zhang San 13333663366 대학 졸업 2006-10-11 Zhang San 13612312331 학부 졸업 2006-10-15 Zhang Si 021-5566556 6 기술 대학 졸업 고등학교 2006-10-15 위 질문에 따라 코드를 완성해 주세요: $mysql_db=mysql_connect("local","root","pass"); @mysql_select_db("DB",$mysql_db ); $sql = sprintf("select * from %s where UserName = '%s'", "테이블 이름", "Zhang San"); values=mysqlquery(sql); while(item= mysqlfetchqueryarray(values)) { echo sprintf("사용자 이름: %s, 전화번호 %s, 학력: %s, 졸업 날짜: %s", item['UserName'],item ['Tel' ], item['Content'], item['Date'] ); } 41. 다음 클래스를 어떻게 사용하고 그 의미를 설명하나요? 클래스 테스트{ function Get_test($num){ num=md5(md5(num)."En"); return $num; } } $test = new test() ; ret=test->Get_test(11); print_r($ret);exit; num을 MD5로 인코딩한 후 생성된 32비트 문자열 a1을 "En"으로 연결한 후 다시 MD5를 수행합니다. Coding 42 SQL 문 형식을 작성하세요: 삽입, 업데이트, 삭제(4점) 테이블 이름 사용자 이름 전화 내용 날짜 张三13333663366 대학 졸업 2006-10-11 张三136123123 3 1 학부 졸업 2006-10-15 장사 021-55665566 중공업 졸업 2006-10-15 (a) 새로운 기록이 있습니다(샤오왕 13254748547 고등학교 졸업 2007-05-06). 테이블에 추가하려면 테이블 이름 값에 삽입하세요('Xiao Wang', '13254748547', 'High School Graduation', '2007-05-06') (b) Zhang San의 값을 업데이트하려면 SQL 문을 사용하세요. 현재 시스템 시간 update 테이블 이름 세트 Date = GETDATE() where UserName = "Zhang San" (c) Zhang Si delete from 표시에서 UserName = "Zhang Si"라는 모든 레코드를 삭제하려면 작성하세요. 43. 데이터 유형의 의미를 적어주세요(int char varchar datetime text). varchar와 char의 차이점은 무엇입니까(2점) int 정수 유형 char 저장 고정 길이 varchar 저장 가변 길이 datetime 시간 텍스트는 가변 길이를 저장합니다. varchar는 가변 길이입니다. char(20) 고정 길이 44.MySQ 자동 증가 유형(일반적으로 테이블 ID 필드)은 (? ) 필드(1포인트) auto_increment 45. 다음 프로그램의 출력(1포인트) $b=201; $c=40; a=b>$c? 4:5; echo $a; 46. 변수가 설정되어 있는지 감지하는 함수가 있나요? (2점) isset() empty() 47. 총 결과 집합 수를 쿼리하는 함수는 무엇입니까? (1점) mysql_num_rows() 48, $arr = array('james', ' tom', 'symfony'); 첫 번째 요소 값(1포인트)을 인쇄하세요. print_r($arr[0]); reset($arr); print_r(current($arr) ); print_r(array_shift($arr)); 49. 41번 문제의 배열 값을 ','로 구분하여 문자열 출력(1포인트)으로 병합해 주세요 implode 50.a='abcdef'; a의 값을 빼고 첫 글자(1포인트)를 출력하세요 $a[0]; substr($a, 0, 1); 51.SQL Server/oracle 등의 데이터베이스에 PHP를 연결할 수 있나요?(1점) 예 기성 라이브러리가 있습니다 52. 3점) public private protected 53.php5의 생성자와 소멸자를 적어주세요(2점) public function construction() { } public function destruct() { } 프로그래밍 질문: 1. 표준 URL에서 파일 확장자를 최대한 효율적으로 추출하는 함수를 작성하세요 예를 들면 다음과 같습니다. : http://www.sina.com.cn/abc/de /fg.php?id=1 php 또는 .php
$url = "http: //www.sina.com.cn/abc/de/fg.php ?id=1"; arr=parseurl(url); pathArr=pathinfo(arr['path']); print_r( $pathArr['extension']); 3 두 파일의 상대 경로를 계산하는 함수를 작성하세요. $a = '/a/b/c/d/e.php' ; $b = '/a/b/12/34/c.php'; a에 대한 b의 상대 경로는 http://www.jb51.net/12/34/c여야 합니다. .php는 추가됩니다
$a = '/ a/b/c/d/e.php'; $b = '/a/b/12/34/c.php '; //conpath function sGetRelativePath( path,conpath) { pathArr=explode("/",path); conpathArr=explode("/", conpath); $dismatchlen = 0; for(i=0;i < ; count(pathArr);i++) { if(conpathArr[i] != pathArr[i]) { dismatchlen=count(pathArr) - $i; arrLeft=arrayslice(pathArr, $ i); break; } } ret=strrepeat("../",dismatchlen).implode( "/", $arrLeft); return $ret; } print_r (sGetRelativePath(b,a)); 3. 접는 사람.
function aGetAllFile($folder) { $aFileArr = array(); if(is_dir($folder)) { handler=opendir(folder); while((file=readdir(handle)) !== false) { //그렇거나..이면 건너뛰세요 if(file=="."||file == ". .") { 계속; } if(is_file(folder."/".file)) { aFileArr[]=file; } else if(is_dir(folder."/".file)) { aFileArr[file] = aGetAllFile(folder."/".file); } } closedir($handle); } return $aFileArr; } $path = "/home/test/sql"; print_r(aGetAllFile($path)); 위 내용은 제가 수집한 최신 면접 질문과 답변입니다. 모든 분들께 도움이 될 것 같습니다. 관련 자료: 8 PHP 면접 질문은 PHP에 대한 이해를 반영합니다. 위 내용은 PHP2017 최신 버전 인터뷰 질문(답변 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!
38. 사용자 배열?(1포인트) b
39. 다음 프로그램은 (1점) 10
40. PHP를 사용하여 "Zhang"이라는 이름의 모든 사람을 찾는 간단한 쿼리를 작성합니다. San" 내용 및 인쇄(2점)