PHP 에서 extract 함수 사용
extract 함 수 는 하나의 숫자 를 여러 변수 로 분해 하여 직접 사용 합 니 다.다음은 W3C 의 설명 입 니 다.PHP extract()함 수 는 배열 에서 변 수 를 현재 기호 표 에 가 져 옵 니 다.배열 의 모든 요소 에 대해 키 이름 은 변수 이름 에 사용 되 고 키 값 은 변수 값 에 사 용 됩 니 다.두 번 째 매개 변수 type 은 특정한 변수 가 존재 하고 배열 에 같은 이름 의 요소 가 있 을 때 extract()함수 가 이러한 충돌 을 어떻게 대처 하 는 지 지정 하 는 데 사 용 됩 니 다.이 함 수 는 성공 적 으로 설 정 된 변수 수 를 되 돌려 줍 니 다.
아래 표 는 매개 변수 설명 입 니 다.
문법
extract(array,extract_rules,prefix)
매개 변수
묘사 하 다.
array
필수사용 할 입력 을 규정 하 다.
extract_rules
선택 할 수 있다.extract()함 수 는 모든 키 이름 이 합 법 적 인 변수 이름 인지 확인 하 는 동시에 기호 표 의 변수 이름 과 충돌 하 는 지 확인 합 니 다.
불법,숫자,충돌 키 이름 에 대한 처 리 는 이 매개 변수 에 따라 결 정 됩 니 다.다음 값 중 하나 일 수 있 습 니 다:
가능 한 값:
선택 할 수 있다.prefix 는 extract 에 만 있 습 니 다.type 의 값 은 EXTRPREFIX_SAME,EXTR_PREFIX_ALL,EXTR_PREFIX_INVALID 또는 EXTRPREFIX_IF_EXISTS 에 필요 합 니 다.접두사 가 추 가 된 결과 가 합 법 적 인 변수 이름 이 아니라면 기호 표 에 가 져 오지 않 습 니 다.
접두사 와 배열 키 사이 에 자동 으로 밑줄 이 붙 습 니 다.
이것 은 데이터베이스 에서 한 줄 의 데 이 터 를 얻 을 때 매우 유용 하 다.우 리 는 아래 의 예 를 보 자.
<?php
$db = mysql_connect('localhost','root','Ctrip07185419') or die('can not connect to mysql');
mysql_select_db('moviesite',$db) or die(mysql_error($db));
mysql_query('set names gbk',$db);
if(isset($_GET['action']) && $_GET['action'] == 'edit')
{
$query = 'SELECT movie_name,movie_type,movie_year,movie_leadactor,movie_director FROM movie WHERE movie_id='.$_GET['id'];
//echo $query;
$result = mysql_query($query , $db) or die(mysql_error($db));
extract(mysql_fetch_assoc($result));
}
else
{
$movie_name='';
$movie_type=0;
$movie_year=date('Y');
$movie_leadactor=0;
$movie_director=0;
}
?>
<html>
<head>
<title><?php echo ucfirst($_GET['action']);?> Movie</title>
<style type="text/css"></style>
</head>
<body>
<form action="commit.php?action=<?php echo $_GET['action'];?>&type=movie" method="post">
<table>
<tr>
<td>Movie Name</td>
<td><input type="text" name="movie_name" value="<?php echo $movie_name;?>"/></td>
</tr>
<tr>
<td>Movie Type</td>
<td><select name="movie_type" id="">
<?php
$query = 'select movietype_id,movietype_label from movietype order by movietype_label';
$result = mysql_query($query , $db) or die(mysql_error($db));
while($row = mysql_fetch_assoc($result))
{
if($row['movietype_id'] == $movie_type)
{
echo '<option value="'.$row["movietype_id"].'" selected="selected">'.$row["movietype_label"].'</option>';
}
else
{
echo '<option value="'.$row["movietype_id"].'">'.$row["movietype_label"].'</option>';
}
}
?>
</select></td>
</tr>
<tr>
<td>Movie Year</td>
<td><select name="movie_year" id="">
<?php
for($yr = date('Y');$yr>1970;$yr--)
{
if($yr == $movie_year)
{
echo '<option value="'.$yr.'" selected="selected">'.$yr.'</option>';
}
else
{
echo '<option value="'.$yr.'">'.$yr.'</option>';
}
}
?>
</select></td>
</tr>
<tr>
<td>Lead actor</td>
<td><select name="movie_leadactor" id="">
<?php
$query = 'select people_id,people_fullname from people where people_isactor = 1 order by people_fullname';
$result = mysql_query($query,$db) or die(mysql_error($db));
while($row = mysql_fetch_assoc($result))
{
if($row["people_id"] == $movie_leadactor)
{
echo '<option value="'.$row["people_id"].'" selected="selected">'.$row["people_fullname"].'</option>';
}
else
{
echo '<option value="'.$row["people_id"].'">'.$row["people_fullname"].'</option>';
}
}
?>
</select></td>
</tr>
<tr>
<td>Director</td>
<td><select name="movie_director" id="">
<?php
$query = 'select * from people where people_isdirector=1 order by people_fullname';
$result = mysql_query($query , $db) or die(mysql_error($db));
while($row = mysql_fetch_assoc($result))
{
if($row['people_id'] == $movie_director)
{
echo '<option value="'.$row['people_id'].'" selected="selected">'.$row["people_fullname"].'</option>';
}
else
{
echo '<option value="'.$row['people_id'].'">'.$row["people_fullname"].'</option>';
}
}
?>
</select></td>
</tr>
<tr>
<td colspan="2" style="text-align:center">
<?php
if('edit' == $_GET['action'])
{
echo '<input type="hidden" value="'.$_GET["id"].'" name="movie_id"/>';
}
?>
<input type="submit" name="submit" value="<?php echo ucfirst($_GET['action']);?>"/>
</td>
</tr>
</table>
</form>
</body>
</html>
빨간색 으로 표 시 된 문 구 를 주의 하 십시오.extract 를 사용 한 후에 변 수 를 직접 사용 할 수 있 고 변수의 이름 은 필드 이름 입 니 다.변수의 값 은 필드 의 값 입 니 다.이것 은 ado.net 에서 DataReader 나 DataSet 에서 데 이 터 를 얻 는 방법 Movie.Name=DataSet.Table[o].Row[i]["Name"].ToString()Movie.Name=reader["Name"].ToString()과 유사 합 니 다.비교 해 보면 php 의 이 extract 방식 은 비교적 간단 하고 직접적 이지 않 습 니까?
PHP 에서 extract 함 수 를 사용 하 는 것 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 PHP extract 함수 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
laravel에 yo에서 angularJs&coffeescript를 사용할 수 있도록 한다.먼저 yo 명령을 사용할 수 있어야하므로 아래에서 설치 global에 설치한 곳에서 laravel의 프로젝트 루트로 이동. 클라이언트 코드를 관리하는 디렉토리를 만들고 이동합니다. 클라이언트 환경 만들기 이것으로 히...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.