PHP の基礎知識メモ
include と require の類似点と相違点:
同じ点: 他の php ファイルをインポートできます。
相違点: includeインポート ファイル エラーが発生した場合、警告のみが表示されますが、プログラムは引き続き実行されます。 require でエラーが発生した場合、エラーが報告され、プログラムは終了します。
一般に、include include_once と require_once を使用します。 🎜> と には が必要です。ファイルを紹介するステートメントを最初に配置する必要があります。これは、C 言語と同様です。
php変数では大文字と小文字が区別されますが、関数名では大文字と小文字が区別されません。また、数字で始めることはできません。たとえば、Abc と abc が同じファイル内に存在する場合、エラーが報告されます。
ローカル変数とグローバル変数が同じ名前の場合の解析;
次のコード部分を見てください:
$a=45;
function abc(){ //関数を定義
$a+= 10;
}
abc(); //関数呼び出し
エコー ‘$a=’.$a;
出力結果は何ですか?結果はまだ 45 ですが、なぜですか?関数本体内には、外部変数 $a と同じ名前を持つローカル変数がありますが、これらは同じ変数ではなく、まったく関連のない 2 つの変数です。関数内の変数 $a は、関数の実行後に解放されます。出力は引き続き外部変数です。関数本体内で外部変数 (グローバル変数) を使用する場合は、同じ名前の内部変数の前に global を追加する必要があります。 ステートメント。実際、コンパイラの観点からは、global として宣言すると、このとき、実際には同じ名前の外部変数のアドレスがこのローカル変数に割り当てられます。同じ名前の内部変数と外部変数は同じアドレスにあるため、当然同じ変数になります。関数本体内の仮パラメータ、または global として宣言されていないローカル変数はローカル変数として使用され、スコープは関数本体内になります。たとえば、次のコードの出力結果は、55. ではなく、45, になります。
$a=45;
function abc($a){ //関数を定義
$a += 10;
}
abc($a); //関数呼び出し
エコー ‘$a=’.$a;
php には 3 つのレベルのエラーがあります:
第 1 レベルのエラー: notice、最も軽いエラー。
を実行することもできます。第 2 レベルのエラー: 警告 、警告、
を実行することもできますレベル 3 エラー: エラー 、プログラムを実行できません。このエラーは最も重大なエラーです。
解除機能説明:
(PHP 3、PHP 4)
unset -- 指定された変数を解放します。使用したくない場合は、この変数を解放できます。
説明
void unset (mixedvar [,mixed var [, ...]])
unset()指定された変数を破棄します。 PHP 3 では、unset() が返されることに注意してください。 TRUE (実際には整数値 1)、PHP 4 では、unset() は実際の関数ではなくなり、ステートメントになりました。この方法では戻り値がなく、取得しようとします unset() の戻り値は解析エラーを引き起こします。
関数内でグローバル変数を unset() すると、ローカル変数のみが破棄され、呼び出し環境内の変数は unset() を呼び出す前に残ります。 同じ値。つまり、グローバル変数は関数の外では変更されません。関数内で参照によって渡された変数を unset() すると、ローカル変数のみが破棄され、呼び出し環境内の変数は unset() 。つまり、仮パラメータはアドレス文字です。
php は C 言語に似ていますが、ポリモーフィズムをサポートしておらず、同じ名前の関数の存在は許可されません。ただし、仮パラメータを省略したり、記述する数を減らしたりすることができます。呼び出し時のパラメータ値。仮パラメータにデフォルト値を割り当てることもできます。たとえば、関数 diyMethod($a,$b=3) は、仮パラメータにデフォルト値 3 を割り当てます。PHP 関数のデフォルト値の転送方法は、参照転送 (アドレス転送) を使用する場合に追加します。仮パラメータの前のアドレス文字、それだけです。参照による受け渡しは、実際には、関数の仮パラメータに対応する受信パラメータを偽装グローバル変数に変換することと同じです。グローバルな声明はありませんが。参照渡しでは、渡されたパラメータの値が変更されます。ただし、ここでの参照は C 言語のポインタではないことに注意してください。ポインタ自体が変数であり、php の参照は実際には変数のエイリアスであるため、1 つのアドレスに複数の変数名を付けることができます。存在する PHP でのクォートとは、同じ変数の内容に異なる名前でアクセスすることを意味します。 global $var で変数を宣言すると、実際にはグローバル変数への参照が作成されます。
php で変数と定数を定義する方法
1. 定数を定義しますdefine("CONSTANT", "Hello world.");
定数にはスカラー データ (boolean、integer、float) のみを含めることができます。
および 文字列)。
定数を呼び出すときは、次のように "$" シンボルを追加する代わりに、名前を使用するだけで定数の値を取得できます。 >echoCONSTANT ;
注:
定数と (グローバル) 変数は異なる名前空間にあります。これは、たとえば TRUE を意味します。
および $TRUE
は違います。
2.共通変数$a = "hello";
3.Variable 変数 (2 つのドル記号を使用 ($))
$$a = "世界" ;
両方の変数が定義されています:
$a の内容は "hello" と $hello です
の内容は「世界」です。
したがって、次のように表現できます:
echo "$a ${$a}"; または echo "$a $hello";どちらも次の出力を行います: こんにちは、世界
配列で可変変数を使用するには、あいまいさを解決する必要があります。 $$a[1] と書くときです。
、パーサーは、 $a[1] が必要かどうかを知る必要があります。
を変数として使用しても、 $$a が必要です
を変数として使用し、変数内のインデックスをとして取り出す [1]
の値。この問題を解決する構文は、最初のケースでは ${$a[1]} を使用し、2 番目のケースでは ${$a を使用します。 }[ 1]。
4.静的変数
関数内static $a =0;
注: 宣言内で式の結果を代入すると、
static $a =3+3;(error)
静的変数はローカル関数ドメイン (関数内) にのみ存在します。関数の実行後、変数値は失われません。
、 は再帰呼び出しに使用できます。
5.
グローバル変数
グローバル変数、関数本体内で定義された関数本体の外で使用できます、global 関数本体の外で定義された変数は、関数本体内では使用できません。グローバル スコープ内の変数にアクセスするには、特別な
PHP カスタム $GLOBALS
配列:
例: $GLOBALS["b"] = $GLOBALS["a"] +$GLOBALS["b"];
関数ドメイン内で グローバルを使用する
ステートメントによってインポートされた実際のグローバル変数は、実際にはグローバル変数 への参照を確立します。
グローバル $obj;
注: 変数 static の場合
および グローバル
定義は、 を適用することで実装されます。
6.変数に値を代入する: アドレスによる代入 (単純な参照):
$bar = &$foo; //代入する変数に
& を追加します
新しい変数を変更すると元の変数に影響があり、この代入操作は高速になります
注: アドレス によって割り当てられるのは名前付き変数のみです
注: の場合
$bar = &$a;
$bar = &$foo
$bar の値を変更すると、変数
foo の値のみが変更できますが、 は変更できませんa の値 (参照変更)
7.PHPスーパーグローバル変数
$GLOBALS : には、参照は、現在の各スクリプトのグローバル スコープで有効な変数を指します。この配列のキーは、グローバル変数の 名です。より
PHP 3 が存在し始めました $GLOBALS
配列。
$_SERVER : 変数は Web によって表されます
サーバー設定は、現在のスクリプトの実行環境に直接関連付けられている場合があります。古い配列 $HTTP_SERVER_VARS に似ています
配列 (まだ有効ですが、非推奨です)。
$_GET : 経由 HTTP GET
メソッドは変数をスクリプトに送信します。
$_POST : 経由の HTTP POST
メソッドは変数をスクリプトに送信します。
$_COOKIE : 経由の HTTP Cookie
メソッドは変数をスクリプトに送信します。
$_FILES : 経由 HTTP POST
ファイルのアップロードのためにスクリプトに送信される変数。
ファイルアップロードフォームには enctype="multipart/form-data"
が含まれている必要があります
$_ENV : 実行環境によってスクリプトに送信される変数。
$_REQUEST : 経由 GET、POST
および クッキー
メカニズムは変数をスクリプトに送信するため、配列は信頼できません。この配列に含まれるすべての変数の有無と変数の順序は php.ini に従っています。
の変数_順序
定義する構成手順。この配列は直接シミュレートされていません PHP4.1.0
の初期バージョン。 import_request_variables() を参照してください。
注: PHP 4.3.0 以降
以降、$_FILES
のファイル情報は $_REQUEST に存在しなくなりました
で。
$_SESSION
: スクリプト セッションに現在登録されている変数。
無効にする方法
phpinfo():
php.ini
中
disable_functions = phpinfo()
Web サーバーを再起動します。
php の定数
定数は、define (定数名、定数値) でのみ使用できます。 >
定数にはスカラー データ (boolean、integer、float) のみを含めることができます。
および 文字列)。
定数の名前を指定するだけで、定数の値を取得できます。定数の前に $ を追加しないでください。
記号。定数名が動的である場合は、関数 を使用することもできます。
constant() 定数の値を読み取ります。 get_define_constants() を使用します。
は、定義されたすべての定数のリストを取得できます。
注:
定数と (グローバル) 変数は異なる名前空間にあります。これは、たとえば TRUE を意味します。
および $TRUE
は違います。
未定義の定数が使用されている場合、PHP
必要なのは、文字列で呼び出す場合と同様に、定数自体の名前であると仮定します (CONSTANT)
は "CONSTANT" に対応します。この時点で E_NOTICE が発行されます
レベルのエラー。 $w3sky[bar] の理由をマニュアルで参照してください。
はエラーです (最初に 定義() で定義されていない限り)
は バーになります
は定数として定義されます)。特定の定数が定義されているかどうかを確認したいだけの場合は、 defined() を使用します。
関数。
定数と変数は異なります:
* 定数の前にドル記号はありません ($)。
* 定数は、
定義() でのみ使用できます。
代入ステートメントを介さない関数定義
* 定数は、変数スコープの規則に関係なく、どこでも定義してアクセスできます。
*
定数は一度定義すると再定義したり定義を解除したりすることはできません。
*
定数の値はスカラーのみです。
定数を定義します
define("CONSTANT", "Helloworld.");
echo CONSTANT; // 「Helloworld」を出力します。
echo Constant; // 「定数」を出力し、通知を発行します。
?>
飛び込み競技、10人の審査員が得点を出し、最高点と最低点を除いて、残りのジャッジ 平均スコアがアスリートのスコアとなり、試行出力は最高スコアを与えたジャッジ、最低スコアを与えたジャッジ、およびアスリートのスコアに与えられます。
答えは次のとおりです:
12,"ms"=>9.0,"ok"=>7.1,"song"=>5.0,"bold"=>3.8,"know"=>2.7,"wow"=>1.7,"serial"=>7.9,"moder"=>7.6,"froke"=>6.7); function getMinMax($arr,$k=true){ //$k 为 true时输出最小值,为false 则输出最大值,还有平均数 $num=$arr["arial"];$sum=0;$s="arial"; foreach($arr as $i => $value){ if($k){ if($value<$num){ $num =$value;$s=$i; } }else { if($value>$num){ $num =$value;$s=$i; } } } $sum = array_sum($arr); return array($sum,$num,$s); } $newArr=getMinMax($arr,true); $sum=$newArr[0]-$newArr[1]; echo 'the lowest degree people is '.$newArr[2]."
"; unset($newArr); $newArr=getMinMax($arr,false); $sum -= $newArr[1]; echo '
the highest degree people is '.$newArr[2]; echo '
the average degree is '.$sum/(count($arr)-2); ?>