PHP開発宝典-POP関数(続き...)

5407 ワード

一、関数
1、関数の定義と呼び出し
function func_name($str1, $str2,...$strn){
    func_body;
}
、関数間伝達パラメータ
1)値転送
実パラメータを関数のパラメータに渡します.実パラメータの値は変更されません.
<?php
function example($m)
{
    $m += 10;
	echo '     :\$m = '.$m."<br>";
}
$m = 1;
example($m);
echo '     :\$m = '.$m;
?>
結果:
関数の内部:$m=11関数の外部:$m=1
2)引用伝達
パラメータの前に&を付けて、変数のアドレスが渡されていることを示します.
<?php
function example(&$m)
{
    $m += 10;
	echo '     :\$m = '.$m."<br>";
}
$m = 1;
example($m);
echo '     :\$m = '.$m;
?>
結果:
関数の内部:$m=11関数の外部:$m=11
3)デフォルトパラメータ
関数のパラメータリストの最後に、デフォルト値を指定します.
<?php
function value($price, $tax=0.2)
{
  $price = $price + ($price * $tax);
  return $price;
} 
echo value(100, 0.4)."<br>";
echo value(100);
?>
結果:
140 120
注:デフォルトパラメータは、デフォルトパラメータ以外の右側に配置する必要があります.
3、関数の戻り値
<?php
function value($price, $tax=0.2)
{
  $price = $price + ($price * $tax);
  return $price;
} 
echo value(100);
?>

関数は1つのパラメータしか返されません.複数のパラメータを返す場合は、関数内に配列を作成し、返されたパラメータを配列に格納して返すことができます.
4、変数関数
<?php
function come()
{
    echo "  "."<br>";
} // end func
function go($name = "xyw")
{
    echo $name."  "."<br>";
} // end func
function back($string)
{
    echo $string."    !";
} // end func
$func = 'come';
$func();
$func = 'go';
$func();
$func = 'back';
$func('scy');
?>

5、関数参照
関数への参照は、関数に返される結果への参照です.
<?php
function &test()
{
	static $a = 0;
	$a += 1;
	echo $a."<br>";
	return $a;
} 
$str = test();
$str = 5;
$str = test();

$str = &test();
$str = 5;
$str = &test();
?>
結果:
1 2 3 6
説明:
$str = test(); $str = 5; $str = test();
これは通常の関数呼び出しであり、関数test()の戻り結果をstrに割り当てるだけで、strの変更は関数内の変数$aに何の影響もありません.
$str = &test(); $str = 5; $str = &test();
これは関数参照であり、$str=&test()を実行し、関数内の変数$aと外部変数$strを同じメモリアドレスに指し、外部が$strを変更すると同時に関数内部$aの値を変更します.
6、引用を取り消す
unset()関数.
二、変数関数ライブラリ
は、変数に対して使用される関数です.
関数#カンスウ#
説明
empty
変数が空かどうかを判断する
gettype
変数のタイプを取得
inval
変数の整数値の取得
is_array
配列かどうかを判断する
is_int
整数かどうかを判断する
is_numeric
変数が数値または数値で構成されているかどうかを判断する文字列
isset
変数が割り当てられているかどうかを判断する
print_r
変数の印刷
settype
変数のタイプの設定
unset
変数の参照を解除
var_dump
変数情報の印刷
issetとemptyを使用して、ユーザー名とパスワードが空かどうかを判断します.
login.php
<title>  </title>
<form action = "login_index.php" method = "post">
   :<input type = "text" name = "user"/>
<br>
  :<input type = "text" name = "pass"/>
<br>
<input type = "Submit" name = "Submit" value = "  "/>
</form>
login_index.php
<?php
 include"login.php";
 if(isset($_POST['Submit']) && $_POST['Submit'] == '  '){
	 $user = $_POST['user'];
	 $pass = $_POST['pass'];

	 if(empty($user) || empty($pass)){
		echo "<script>alert('           !')</script>";
	 }
 }
?> 
三、文字列関数ライブラリ
関数#カンスウ#
機能
explode
区切り文字列
addcslashes
指定した文字列の前にスラッシュを付けることで、文字列内の文字の転送を実現します.
echo
出力文字列
ltrim
文字列の前のスペースを削除
md5
計算文字列のmd 5コード
strlen
文字列の長さ
str_replace
指定した文字列を別の文字列に置き換える
str_repeat
指定した文字列を繰り返し出力
str_ireplace
str_replace()大文字と小文字のバージョンを無視
strchr
指定した文字列が別の文字列で最初に現れる位置から後者の末尾までのすべての文字列を取得します.
strstr
同strchr
stristr
strstr()関数の無視大文字と小文字のバージョン
substr_replace
指定した文字列に文字列の一部を置換
substr
切り取り文字列
関数のプロトタイプ:
1、array explode ( string $separator , string $string [, int $limit ] )
$separator    ;$string         。  ¥separator  ,  false
2、string addcslashes ( string $str , string $charlist )
$str          $charlist          
3、string md5 ( string $str [, bool $raw_output = false ] )
$str          $raw_output true ,        
4、mixed str_ireplace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )
$subject         ;$search $subject     ;$replace         
5、string str_repeat ( string $input , int $multiplier )
$multiplier      
6、string strstr ( string $haystack , mixed $needle [, bool $before_needle = false ] )
$haystack        ;$needle        
7、mixed substr_replace ( mixed $string , string $replacement , int $start [, int $length ] )
8、string substr ( string $string , int $start [, int $length ] )
例:
<?php

$str = "  @  @  @  ";
$str_array = explode("@", $str);
foreach($str_array as $value){
	echo $value."<br>";
}
echo md5($str)."<br>"; //  md5
var_dump($str_array); //      
echo "<br>";
echo str_ireplace('@','*',$str); // *  $str  @ 
echo "<br>";
echo str_repeat($str,4);//    4 
echo "<br>";
echo strchr($str, ' ');//  ‘ ’          
?>