ホームページ  >  記事  >  php教程  >  PHPの基礎知識メモ

PHPの基礎知識メモ

WBOY
WBOYオリジナル
2016-06-21 08:48:57883ブラウズ

include と require の類似点と相違点:

同じ点: どちらも他の php ファイルをインポートできます。

違い: インクルードでインポート ファイル エラーが発生した場合、警告のみが表示されますが、プログラムは引き続き実行されます。 require でエラーが発生した場合、エラーが報告され、プログラムは終了します。

一般に、include と require の代わりに include_once と require_once が使用されます。 C 言語と同様に、ファイルを紹介するステートメントを最初に配置する必要があります。

PHP 変数では大文字と小文字が区別されますが、関数名では大文字と小文字が区別されません。また、数字で始めることはできません。たとえば、Abc と abc が同じである場合、これら 2 つの関数が同じファイル内に共存すると、エラーが報告されます。

ローカル変数とグローバル変数が同じ名前を持つ状況の分析;

次のコード部分を見てください:

$a=45;

function abc(){ //関数を定義

$a+= 10;

}

abc(); //関数を呼び出します

echo ‘$a=’.$a;

出力結果は何ですか?結果はまだ 45 ですが、なぜですか?関数本体内には、外部変数 $a と同じ名前を持つローカル変数がありますが、これらは同じ変数ではなく、まったく関係のない 2 つの変数です。関数内の変数 $a は、関数の実行が完了すると解放されます。出力は外部変数のままです。関数本体内で外部変数 (グローバル変数) を使用する場合は、同じ名前の内部変数の前にグローバル ステートメントを追加する必要があります。実際、コンパイラから見ると、グローバルとして宣言すると、実際にはこのローカル変数に同名の外部変数のアドレスが代入されます。このとき、内部変数と同名の外部変数は、同じアドレスなので、当然同じ変数になります。関数本体内の仮パラメータ、またはグローバルとして宣言されていないローカル変数はローカル変数として使用され、スコープは関数本体内になります。たとえば、次のコードの出力結果は 55 ではなく 45 です。

$a=45;

function abc($a){ //関数を定義

$a += 10;

}

abc($a); //関数を呼び出す

echo ‘$a=’.$a;

php には 3 つのレベルのエラーがあります:

第 1 レベルのエラー: 最も軽いエラーですが、まだ実行できることに注意してください

レベル 2 エラー: 警告、警告。

を実行することもできます

第 3 レベルのエラー: エラー、プログラムは実行できません。このエラーは最も重大なエラーです。

unset 関数の説明:

(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.");

定数にはスカラー データ (ブール値、整数、浮動小数点、文字列) のみを含めることができます。

定数を呼び出すときは、次のように、「$」記号を追加せずに、名前を使用するだけで定数の値を取得できます。

注: 定数と (グローバル) 変数は異なる名前空間にあります。これは、たとえば TRUE と $TRUE が異なることを意味します。

2. 通常の変数 $a = "こんにちは";

3. 変数変数 (2 つのドル記号 ($) を使用します)

$$a = "世界"

両方の変数が定義されています:

$a の内容は「hello」、$hello の内容は「world」です。

したがって、次のように表すことができます:

echo "$a ${$a}"; または echo "$a $hello"; どちらも次のように出力されます: hello world

配列で可変変数を使用するには、あいまいさを解決する必要があります。これは、$$a[1] を記述するときに、パーサーは $a[1] を変数として必要とするか、または $$a を変数として必要としてインデックス [1] 値を持つ変数を抽出するかを知る必要があります。この問題を解決する構文は、最初のケースには ${$a[1]} を使用し、2 番目のケースには ${$a}[1] を使用します。

4. 静的変数

関数内の静的 $a =0

注: 宣言内の式の結果を代入すると、static $a =3+3 (error)

などの解析エラーが発生します。

静的変数はローカル関数ドメイン (関数内) にのみ存在し、関数の実行後も変数値は失われず、再帰呼び出しに使用できます。

5. グローバル変数

関数本体の外で定義されたグローバル変数は、関数本体の外で使用できます。関数本体の外で定義されたグローバル変数は、関数本体の内部では使用できません。グローバル スコープ内の変数にアクセスするには、特別な PHP カスタム $GLOBALS を使用できます。配列:

例: $GLOBALS["b"] = $GLOBALS["a"] +$GLOBALS["b"];

関数スコープ内で global ステートメントを使用してインポートされた実際のグローバル変数は、実際にグローバル変数への参照を確立します

グローバル $obj

注: 変数の静的定義とグローバル定義はアプリケーション方式で実装されます

6. 変数に値を代入する: アドレスによる代入 (単純な参照):

$bar = &$foo; //代入する変数の前に & 記号を追加します

新しい変数を変更すると元の変数に影響があり、この代入操作のほうが高速です

注: アドレス

で割り当てることができるのは名前付き変数のみです

注:

の場合

$bar = &$a;

$bar = &$foo

$bar の値を変更すると、変数 foo の値のみが変更され、a の値は変更されません (参照が変更されました)

7.PHP スーパー グローバル変数 $GLOBALS: 現在の各スクリプトのグローバル スコープで有効な変数を指す参照が含まれています。この配列のキーには、グローバル変数の名前が付けられます。 $GLOBALS 配列は PHP 3 以降に存在します。

$_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、COOKIE メカニズムを介してスクリプトに送信された変数であるため、この配列は信頼できません。この配列に含まれるすべての変数の有無、および順序は、php.ini の variables_order 設定ディレクティブに従って定義されます。この配列は、PHP4.1.0 の以前のバージョンを直接エミュレートしません。 import_request_variables() を参照してください。

注: PHP 4.3.0 以降、$_FILES のファイル情報は $_REQUEST に存在しなくなりました。

$_SESSION: スクリプト セッションに現在登録されている変数。

phpinfo() を無効にする方法:

php.ini

disable_functions = phpinfo()

Webサーバーを再起動します。

php の定数

定数は (定数名、定数値) のみ定義できます。

定数にはスカラー データ (ブール、整数、浮動小数点、文字列) のみを含めることができます。

定数の名前を指定するだけで定数の値を取得できます。定数の前に $ 記号を追加しないでください。定数名が動的である場合は、関数

を使用することもできます。

constant() は定数の値を読み取ります。 get_define_constants() を使用して、定義されているすべての定数のリストを取得します。

注: 定数と (グローバル) 変数は異なる名前空間にあります。これは、たとえば TRUE と $TRUE が異なることを意味します。

未定義の定数が使用される場合、PHP は文字列で呼び出すかのように、必要なのは定数自体の名前であると想定します (CONSTANT は「CONSTANT」に対応します)。 E_NOTICE レベルのエラーが発行されます。 $w3sky[bar] が間違っている理由についてはマニュアルを参照してください (bar が事前にdefine() で定数として定義されている場合を除く)。特定の定数が定義されているかどうかだけを確認したい場合は、define() 関数を使用します。

定数と変数は異なります:

* 定数の前にドル記号 ($) はありません。

* 定数は、代入ステートメントではなく、define() 関数を使用してのみ定義できます。

* 定数は、変数スコープのルールに関係なく、どこでも定義してアクセスできます。

* 定数を一度定義すると、再定義したり、定義を解除したりすることはできません。

* 定数の値はスカラーのみです。

定数を定義する

define("CONSTANT", "Helloworld.");

echo CONSTANT; // 「Helloworld」を出力します。

echo Constant; // 「定数」を出力し、通知を発行します。

?>

飛び込み競技では、10人の審査員が採点し、最高点と最低点を除いた残りの審査員の得点の平均を選手の得点として計算し、最も得点の高い審査員に得点を出力するようにしてください。最も低いスコアを持ったジャッジと選手のスコア。

答えは次のとおりです:

<?php  
    $arr = array("arial"=>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 &#39;the lowest degree people is &#39;.$newArr[2]."<br />";  
    unset($newArr);  
    $newArr=getMinMax($arr,false);   
    $sum -= $newArr[1];  
    echo &#39;<br />the highest degree people is &#39;.$newArr[2];  
    echo &#39;<br />the average degree is &#39;.$sum/(count($arr)-2);  
?>  

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。