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