>  기사  >  백엔드 개발  >  PHP에 대한 지식을 반영하는 8가지 PHP 인터뷰 질문

PHP에 대한 지식을 반영하는 8가지 PHP 인터뷰 질문

黄舟
黄舟원래의
2017-11-10 11:07:222022검색

PHP 면접 질문에는 시시각각 변하는 필기시험 문제, 핵심 기술 질문, thinkphp 질문, 오류가 발생하기 쉬운 질문 등도 소개해 드렸습니다. 최근 많은 회사에서 발행하는 PHP 면접 질문이 PHP 수준을 직접적으로 반영할 수 있다는 사실을 발견했습니다. PHP에 대한 이해!

1.

<?php echo count(strlen(“http://php.net”)); ?>

실행 결과는 무엇인가요?

답변: 1

설명: count(var)는 배열이나 객체의 요소 수를 계산하는 데 사용됩니다. var가 null이거나 빈 배열인 경우 결과는 0입니다. var가 일반 변수인 경우 1을 반환합니다. 일반적인 상황에서는 var의 요소 또는 속성 수가 반환됩니다.

2. list() 함수를 사용할 때 주의해야 할 점은 무엇인가요?

답변: list()는 문법 구조입니다. List($array)는 배열의 요소를 일부 변수에 빠르게 할당하는 데 사용됩니다. 사용시 $array는 인덱스 배열이어야 하며, 인덱스 값은 0부터 시작한다는 점에 유의하시기 바랍니다.

3. php.ini에서 safe_mode를 켠 후 어떤 기능이 영향을 받는지 설명해 주세요.


답변: Safe_mode는 PHP의 안전 모드입니다. 켜진 후에는 주로 시스템 작동, 파일, 권한 설정 및 기타 방법에 영향을 미치며 주로 웹쉘을 처리하는 데 사용됩니다. 다음은 영향을 받는 기능 중 일부입니다.

ckdir,move_uploaded_file,chgrp,parse_ini_file,
chown,rmdir,copy,rename,fopen,require,highlight_file,show_source,include,symlink,link,touch,mkdir,unlink,exec,
shell_exec,pasathru,system,popen

주의해야 할 점: php5.3 이상에서는 safe_mode가 더 이상 사용되지 않으며 php5.4 이상에서는 이 기능이 완전히 제거됩니다.

4. POSIX 스타일과 호환되는 Prel 스타일 정규식의 주요 기능을 비유적으로 설명해주세요.

답변: POSIX 스타일: 정규식 ereg를 일치시키고 ereg_replace를 바꿉니다

Prel 스타일: 정규식 preg_match를 일치시키고 preg_replace를 바꿉니다

Preg_match는 ereg보다 빠르고 preg_replace는 ereg_replace보다 빠릅니다.

5. 명령으로 PHP 스크립트를 실행하는 방법(두 가지 방법으로 작성)과 PHP 스크립트에 매개변수를 전달하는 방법은 무엇입니까?

답변: 첫 번째 방법: 먼저 PHP 설치 디렉터리에 들어가서 php path/filename.php를 실행하세요.

예:

php my_script.php     php -f  "my_script.php"

두 번째 방법: php -r "php script"; (php의 시작 및 끝 문자를 추가할 필요가 없습니다).

예:

php -r "print_r(get_defined_constants());"

PHP 스크립트에 매개변수 전달:

첫 번째 방법: php -r "var_dump($argv);" -- -h (참고: 전달될 매개변수가 -로 시작하는 경우 다음을 사용해야 합니다. 매개변수 목록 구분 기호 -- 올바르게 전달될 수 있음)

두 번째 방법: test.php 파일 코드:

#!/usr/bin/php  <?phpvar_dump($argv);?>

./test.php -h -- foo(php 시작 부분에 #!/usr/bin 추가 /php 파일에서 -)

6으로 시작하는 매개변수를 직접 전달할 수 있습니다. 각각의 사용법을 예시로 들어주세요.

답변:

1.construct(): 객체를 인스턴스화할 때 자동으로 호출됩니다.

2.destruct(): 객체가 파괴되거나 스크립트 실행이 종료되면 자동으로 호출됩니다.

3.call(): 객체에 존재하지 않는 메소드를 호출할 때 실행되는 함수입니다.

4. get(): 객체의 존재하지 않는 속성을 가져올 때 이 함수를 실행합니다.

5.set(): 객체의 존재하지 않는 속성을 설정할 때 이 함수를 실행합니다.

6.isset(): 이 함수는 객체의 특정 속성이 존재하는지 감지할 때 실행됩니다.

7. unset(): 이 함수는 객체의 속성을 파괴할 때 실행됩니다.

8. toString(): 객체를 문자열로 출력할 때 이 함수를 실행합니다.

9.clone(): 객체를 복제할 때 실행되는 함수입니다.

10.autoload(): 객체를 인스턴스화할 때 클래스가 존재하지 않을 때 이 함수를 실행하면 클래스가 자동으로 로드됩니다.

11.sleep(): 직렬화 전에 호출되며 직렬화할 객체 속성을 지정할 수 있습니다.

12. wakeup: Unserialize가 이전에 호출되었으며 개체 초기화를 수행할 수 있습니다.

13. set_state(): var_export가 호출될 때 호출됩니다. var_export의 반환 값으로 set_state의 반환 값을 사용합니다.

14.invoke(): 객체를 함수로 사용할 때 실행되는 메서드입니다. 일반적으로 권장되지 않습니다.

7. PHP의 가비지 수집 메커니즘을 간략하게 설명합니다.

답변: PHP의 변수는 변수 컨테이너 zval에 저장됩니다. 변수 유형과 값을 저장하는 것 외에도 zval에는 is_ref 및 refcount 필드도 있습니다. refcount는 변수를 가리키는 요소의 수를 나타내고, is_ref는 변수에 별칭이 있는지 여부를 나타냅니다. refcount가 0이면 변수 컨테이너가 재활용됩니다. zval의 참조 횟수가 1만큼 감소한 후 0보다 크면 가비지 버퍼에 들어갑니다. 버퍼가 최대값에 도달하면 재활용 알고리즘은 zval을 반복하여 가비지인지 확인하고 해제합니다.

8. PHP를 사용하여 양방향 대기열을 구현합니다.

큐는 선입선출 방식으로 작동하는 선형 테이블입니다.

단방향 큐: 처음부터 들어가고 끝에서만 나갈 수 있습니다.

양방향 큐: 두 가지 모두 가능합니다. 머리와 꼬리가 들어가고 나갈 수 있습니다.

class DuiLie {
private $array = array();//声明空数组
public function setFirst($item){
return array_unshift($this->array,$item);//头入列
}
public function delFirst(){
return array_shift($this->array);//头出列
}
public function setLast($item){
return array_push($this->array,$item);//尾入列
}
public function delLast(){
return array_pop($this->array,$item);//尾出列
}
public function show(){
var_dump($this->array);//打印数组
}
public function Del(){
unset($this->array);//清空数组
}
}

요약:

이 글에서 소개하는 PHP 면접 질문은 우리가 개발 업무에서 자주 접하는 질문들이기 때문에, PHP에 대해 얼마나 알고 있는지, 실제로 얼마나 개발했는지를 반영할 수 있어 매우 직관적인 PHP 면접 질문이길 바랍니다. 이것이 도움이 됩니다!

관련 추천:

PHP 면접 질문의 객체 지향 질문 분석


오류가 발생하기 쉬운 PHP 면접 질문 10가지


PHP 면접 문제 속 PHP 핵심 기술 문제 공유


PHP 면접 문제 속 필기 시험 문제 요약


위 내용은 PHP에 대한 지식을 반영하는 8가지 PHP 인터뷰 질문의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.