検索

PHP は、動的でインタラクティブなサイトを作成するための強力なサーバーサイド スクリプト言語です。

PHP ハイパーテキスト プリプロセッサ

PHP ファイルとは何ですか?

  • PHPファイルにはテキスト、HTML、CSS、PHPコードを含めることができます
  • PHPコードはサーバー上で実行され、結果はプレーンテキストでブラウザに返されます
  • PHPファイルのサフィックスは「.php」です
  • PHPでは何ができるのでしょうか?

  • PHPは動的なページコンテンツを生成できます
  • PHPはサーバー上のファイルを作成、開き、読み取り、書き込み、削除、閉じることができます
  • PHPはフォームデータを受信できます
  • PHPはCookieを送信および取得できます
  • PHPは追加、削除、データベース内のデータを変更する
  • PHP は、ユーザーが Web サイト内の特定のページにアクセスすることを制限できます
  • PHP はデータを暗号化できます
  • PHP では、HTML のみを出力することに限定されません。画像、PDF ファイル、さらには Flash ムービーをエクスポートすることもできます。 XHTML や XML などのテキストを出力することもできます。

    基本的な PHP 構文

    PHP スクリプトはドキュメント内のどこにでも配置できます。

    PHP スクリプトは で終わります:

    <?php// 此处是 PHP 代码?>

    PHP ファイルのデフォルトのファイル拡張子は「.php」です。

    PHP ファイルには通常、HTML タグといくつかの PHP スクリプト コードが含まれています。

    PHP は 3 種類のコメントをサポートしています:

    <?php// 这是单行注释# 这也是单行注释/*这是多行注释块它横跨了多行*/?>
    PHP では、すべてのユーザー定義関数、クラス、キーワード (if、else、echo など) は大文字と小文字が区別されません。

    ただし、PHP では、すべての変数で大文字と小文字が区別されます。

    変数は情報を保存するコンテナです

    PHP変数のルール:

  • 変数は$記号で始まり、その後に変数名が続きます
  • 変数名は文字またはアンダースコアで始まる必要があります
  • 変数名を始めることはできません数字を使用します
  • 変数名には英数字とアンダースコア (A-z、0-9、_) のみを含めることができます
  • 変数名は大文字と小文字が区別されます ($y と $Y は 2 つの異なる変数です)
  • PHP は大まかに型付き言語 言語

    PHP には 3 つの異なる変数スコープがあります:

  • local (ローカル)
  • global (グローバル)
  • static (静的)
  • PHP static キーワード

    通常、関数が完了/実行されるとき、すべての変数を削除します。ただし、ローカル変数を削除したくない場合もあります。これを達成するにはさらなる作業が必要です。

    これを実現するには、最初に変数を宣言するときに static キーワードを使用します

    PHP には、echo と print という 2 つの基本的な出力メソッドがあります。

    echo と print の違い:

  • echo - 複数の文字列を出力できます
  • print - 1 つの文字列のみを出力でき、常に 1 を返します
  • ヒント: echo は値を返さないため、print よりわずかに高速です。

    <?phpecho "<h2 id="PHP-is-fun">PHP is fun!</h2>";echo "Hello world!<br>";echo "This", " string", " was", " made", " with multiple parameters.";?>
    <?phpprint "<h2 id="PHP-is-fun">PHP is fun!</h2>";print "I'm about to learn PHP!";?>
    PHP var_dump() は、変数

    <?php $cars=array("Volvo","BMW","SAAB");var_dump($cars);?>
    のデータ型と値を返します。 演算結果: array(3) { [0]=> string(5) "Volvo" [1]= > string(3) "BMW" [2]=> string(4) "SAAB" }

    PHP NULL 値

    特別な NULL 値は、変数に値がないことを意味します。データ型 NULL に指定できる値は NULL のみです。

    NULL 値は、変数が空かどうかを示します。空の文字列と null 値のデータベースを区別するためにも使用されます。

    値を NULL に設定することで変数をクリアできます

    定数は変数に似ていますが、一度定義すると、変更したり未定義にしたりすることはできません。


    有効な定数名は文字またはアンダースコアで始まります (定数名の前に $ 記号はありません)。変数とは異なり、定数はスクリプト全体にわたって自動的にグローバルになります。


    PHP 定数を設定する

    定数を設定するには、define() 関数を使用します。これには 3 つのパラメータが必要です:

      最初のパラメータは定数の名前を定義します
    1. 2 番目のパラメータは定数の値を定義します
    2. Can 選択された 3 番目のパラメーターは、定数名の大文字と小文字を区別するかどうかを指定します。デフォルトは false です。
    「W3School.com.cn へようこそ!」という値を持つ大文字と小文字を区別する定数を作成します:


    <?phpdefine("GREETING", "Welcome to W3School.com.cn!", true);echo greeting;?>

    PHP 算数运算符

    <?php $x=10; $y=6;echo ($x + $y); // 输出 16echo ($x - $y); // 输出 4echo ($x * $y); // 输出 60echo ($x / $y); // 输出 1.6666666666667echo ($x % $y); // 输出 4?>

    PHP 字符串运算符

    运算符 名称 例子 结果
    . 串接 $txt1 = "Hello" $txt2 = $txt1 . " world!" 现在 $txt2 包含 "Hello world!"
    .= 串接赋值 $txt1 = "Hello" $txt1 .= " world!" 现在 $txt1 包含 "Hello world!"

    PHP 递增/递减运算符

    运算符 名称 描述
    ++$x 前递增 $x 加一递增,然后返回 $x
    $x++ 后递增 返回 $x,然后 $x 加一递增
    --$x 前递减 $x 减一递减,然后返回 $x
    $x-- 后递减 返回 $x,然后 $x 减一递减

    PHP 比较运算符

    PHP 比较运算符用于比较两个值(数字或字符串):

    运算符 名称 例子 结果
    == 等于 $x == $y 如果 $x 等于 $y,则返回 true。
    === 全等(完全相同) $x === $y 如果 $x 等于 $y,且它们类型相同,则返回 true。
    != 不等于 $x != $y 如果 $x 不等于 $y,则返回 true。
    不等于 $x $y 如果 $x 不等于 $y,则返回 true。
    !== 不全等(完全不同) $x !== $y 如果 $x 不等于 $y,且它们类型不相同,则返回 true。
    > 大于 $x > $y 如果 $x 大于 $y,则返回 true。
    小于 $x 如果 $x 小于 $y,则返回 true。
    >= 大于或等于 $x >= $y 如果 $x 大于或者等于 $y,则返回 true.
    小于或等于 $x 如果 $x 小于或者等于 $y,则返回 true。

    PHP 逻辑运算符

    运算符 名称 例子 结果
    and $x and $y 如果 $x 和 $y 都为 true,则返回 true。
    or $x or $y 如果 $x 和 $y 至少有一个为 true,则返回 true。
    xor 异或 $x xor $y 如果 $x 和 $y 有且仅有一个为 true,则返回 true。
    && $x && $y 如果 $x 和 $y 都为 true,则返回 true。
    || $x || $y 如果 $x 和 $y 至少有一个为 true,则返回 true。
    ! !$x 如果 $x 不为 true,则返回 true。

    PHP 配列演算子

    PHP 配列演算子は配列を比較するために使用されます:

    演算子名 結果の例
    + Union $x + $y $x と $y の和集合 (重複をオーバーライドしない)キー)
    == Equal $x == $y $x と $y が同じキーと値のペアを持つ場合、true を返します。
    === Congruent $x === $y $x と $y が同じ順序と型の同じキー/値ペアを持つ場合に true を返します。
    != 等しくない $x != $y $x が $y と等しくない場合に true を返します。
    不等 $x $y $x が $y と等しくない場合に true を返します。
    !== 合同ではありません $x !== $y $x が $y と完全に異なる場合に true を返します。

    在 PHP 中,我们可以使用以下条件语句:

  • if 语句 - 如果指定条件为真,则执行代码
  • if...else 语句 - 如果条件为 true,则执行代码;如果条件为 false,则执行另一端代码
  • if...elseif....else 语句 - 选择若干段代码块之一来执行
  • switch 语句 - 语句多个代码块之一来执行
  • 在 PHP 中,我们有以下循环语句:

  • while - 只要指定条件为真,则循环代码块
  • do...while - 先执行一次代码块,然后只要指定条件为真则重复循环
  • for - 循环代码块指定次数
  • foreach - 遍历数组中的每个元素并循环代码块
  • PHP foreach 循环

    foreach 循环只适用于数组,并用于遍历数组中的每个键/值对。

    <?php $colors = array("red","green","blue","yellow"); foreach ($colors as $value) {  echo "$value <br>";}?>
    PHP 的真正力量来自它的函数:它拥有超过 1000 个内建的函数。

    页面加载时函数不会立即执行。

    函数只有在被调用时才会执行。

    PHP 默认参数值

    <?phpfunction setHeight($minheight=50) {  echo "The height is : $minheight <br>";}setHeight(350);setHeight(); // 将使用默认值 50setHeight(135);setHeight(80);?>

     

    在 PHP 中创建数组

    在 PHP 中, array() 函数用于创建数组:

    array();

    在 PHP 中,有三种数组类型:

  • 索引数组 - 带有数字索引的数组
  • 关联数组 - 带有指定键的数组
  • 多维数组 - 包含一个或多个数组的数组
  • 索引是自动分配的(索引从 0 开始):

    $cars=array("Volvo","BMW","SAAB");或者:$cars[0]="Volvo";$cars[1]="BMW";$cars[2]="SAAB";

    获得数组的长度 - count() 函数

    count() 函数用于返回数组的长度(元素数)

    遍历索引数组

    <?php$cars=array("Volvo","BMW","SAAB");$arrlength=count($cars);for($x=0;$x<$arrlength;$x++) {  echo $cars[$x];  echo "<br>";}?>

    PHP 关联数组

    关联数组是使用您分配给数组的指定键的数组。

    $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"4");或者:$age['Peter']="35";$age['Ben']="37";$age['Joe']="4";

    遍历关联数组

    <?php$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");foreach($age as $x=>$x_value) {  echo "Key=" . $x . ", Value=" . $x_value;  echo "<br>";}?>

    PHP - 数组的排序函数

  • sort() - 以升序对数组排序
  • rsort() - 以降序对数组排序
  • asort() - 根据值,以升序对关联数组进行排序
  • ksort() - 根据键,以升序对关联数组进行排序
  • arsort() - 根据值,以降序对关联数组进行排序
  • krsort() - 根据键,以降序对关联数组进行排序
  • PHP 全局变量 - 超全局变量

    PHP 中的许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中都可用。在函数或方法中无需执行 global $variable; 就可以访问它们。

    这些超全局变量是:

  • $GLOBALS
  • $_SERVER
  • $_REQUEST
  • $_POST
  • $_GET
  • $_FILES
  • $_ENV
  • $_COOKIE
  • $_SESSION
  • $GLOBALS 这种全局变量用于在 PHP 脚本中的任意位置访问全局变量(从函数或方法中均可)。

    PHP $_SERVER

    $_SERVER 这种超全局变量保存关于报头、路径和脚本位置的信息。

    <?php echo $_SERVER['PHP_SELF'];echo "<br>";echo $_SERVER['SERVER_NAME'];echo "<br>";echo $_SERVER['HTTP_HOST'];echo "<br>";echo $_SERVER['HTTP_REFERER'];echo "<br>";echo $_SERVER['HTTP_USER_AGENT'];echo "<br>";echo $_SERVER['SCRIPT_NAME'];?>

    PHP $_REQUEST

    PHP $_REQUEST 用于收集 HTML 表单提交的数据。

    PHP $_POST

    PHP $_POST 广泛用于收集提交 method="post" 的 HTML 表单后的表单数据。$_POST 也常用于传递变量。

    PHP $_GET

    PHP $_GET 也可用于收集提交 HTML 表单 (method="get") 之后的表单数据。$_GET 也可以收集 URL 中的发送的数据。

    PHP 超全局变量 $_GET 和 $_POST 用于收集表单数据(form-data)。

    $_GET 是通过 URL 参数传递到当前脚本的变量数组。

    $_POST 是通过 HTTP POST 传递到当前脚本的变量数组。

    通过 GET 方法从表单发送的信息对任何人都是可见的(所有变量名和值都显示在 URL 中)。GET 对所发送信息的数量也有限制。限制在大于 2000 个字符。不过,由于变量显示在 URL 中,把页面添加到书签中也更为方便。

    GET 可用于发送非敏感的数据。

    通过 POST 方法从表单发送的信息对其他人是不可见的(所有名称/值会被嵌入 HTTP 请求的主体中),并且对所发送信息的数量也无限制。

    さらに、POST は、ファイルをサーバーにアップロードする際のマルチパート バイナリ入力などの高レベルの機能をサポートします。

    ヒント: 開発者は、フォーム データを送信するために POST を好みます。

    $_SERVER["PHP_SELF"] は、現在実行中のスクリプトのファイル名を返すスーパーグローバル変数です。

    そのため、$_SERVER["PHP_SELF"] は、別のページにジャンプするのではなく、フォーム データをページ自体に送信します。このようにして、ユーザーはフォーム ページでエラー メッセージ情報を取得できます。

    htmlspecialchars() 関数は、特殊文字を HTML エンティティに変換します。

    ------------------------------------------------ -------------------------------------------------- -------------

    PHP は 8 つのプリミティブ データ型をサポートします。

    4 つのスカラー型:

  • boolean (ブール)
  • integer (整数)
  • float (float、double とも呼ばれます)
  • string (string)
  • 2 つの複合型:

    array (配列)
  • オブジェクト ( object)
  • 最後に、2 つの特別な型があります:

    resource (リソース)
  • NULL (型なし)
  • コードの読みやすさを確保するために、このマニュアルではいくつかの疑似型も導入しています:

    mixed (mixed) type)
  • number (数値型)
  • callback (コールバック型)
  • と擬似変数 $....

    : 式の値と型を確認したい場合は、var_dump() 関数を使用します。

    デバッグ用に読みやすい型式を取得したいだけの場合は、gettype() 関数を使用します。型を表示するには、gettype() を使用せず、 is_type 関数を使用します

    $a_bool = TRUE; // boolean
    $a_str = "foo" / / 文字列
    $a_str2 = 'foo'; // 文字列
    $an_int = 12; // 整数
    echo gettype($a_bool); // 出力: boolean
    echo gettype($a_str); out : string
    // これが整数の場合、4 ずつ増加します
    if (is_int($an_int)) {
    $an_int += 4;
    }
    // $bool が文字列の場合、出力します
    / / (何も出力しません)
    if (is_string($a_bool)) {
    echo "String: $a_bool";
    ?>

    特定の型に対しては、cast または settype() 関数を使用できます。

    var_dump((bool) "") // bool(false)

    var_dump((bool) 1); ( bool) -2); // bool(true)

    var_dump((bool) "foo") // bool(true)

    var_dump((bool) 2.3e5); ) array(12)); // bool(true)

    var_dump((bool) array()); // bool(false)

    var_dump((bool) "false"); // bool(true)
    ?> ;







    8 進数表現を使用するには、数値の前に 0 (ゼロ) を追加する必要があります。 16 進数表現を使用するには、数値の前に 0x を付ける必要があります。バイナリ表現を使用するには、数値の前に 0b を追加する必要があります。

    $a = 1234; // 10 進数
    $a = -123; // 8 進数 (10 進数の 83 に等しい)
    $ a = 0x1A; // 16 進数 (10 進数の 26 に等しい)


    Integer 値の語長は定数

    PHP_INT_ で表すことができます。 SIZE

    、PHP 4.4 以降.0 および PHP 5.0.5 以降では、最大値は定数

    PHP_INT_MAX

    で表すことができます。

    警告 不正な数値 (つまり、8 または 9) が 8 進数に渡された場合、残りの桁は無視されます。

    var_dump(01090) // 8 進数 010 = 10 進数 8


    ;

    指定された数値を超えた場合整数の範囲を超えると、浮動小数点として解釈されます。同様に、演算結果が整数の範囲を超える場合は浮動小数点数が返されます。

    PHP には整数の除算用の演算子がありません。 1/2 は float0.5 を生成します。値は、小数部分を破棄して整数にキャストすることも、より適切に丸めるためにround()関数を使用することもできます。 var_dump(25/7); // float(3.5714285714286)

    var_dump((int) (25/7)) // int(3)

    var_dump(round(25/7)); // float(4)

    ?>





    警告

    予期しない結果が生じる可能性があるため、未知の小数を整数にキャストしないでください。

    echo (int) ( (0.1+0.7) * 10 );

    ?>



    正確なわかりました 最後に、2 つの浮動小数点数が等しいかどうかを比較しないでください。本当にさらに精度が必要な場合。

    浮動小数点数を比較する回りくどい方法:

    $a = 1.23456789;

    $b = 1.234; 56780;

    $epsilon = 0.00001; $a-$b)<. class="sycode">FALSE

    となります。

    NAN

    は任意の個別の値を表すため、

    NAN

    はそれ自体を含む他の値と比較されるべきではなく、 is_nan() を使用してチェックされる必要があります。



    PHP は 256 文字セットしかサポートできないため、Unicode はサポートされていません。 注意: 文字列の最大サイズは 2GB に達することがあります。

    & & & & & & & & & & & & & & & & & c 's

    // 複数行入力可能




    Strings this に newLines を埋め込んでいますそのままです
    大丈夫です';
    // 出力: アーノルドはかつて言いました: 「また来ます」
    echo 'アーノルドはかつて言いました: 「また来ます」
    // 出力: あなたは削除しましたC:*.* ?
    echo 'C:\*.* を削除しましたか?';
    // 出力: C:*.* を削除しましたか?
    echo 'C:*.* を削除しましたか?'; : これは展開されません : n a newline
    echo 'これは展開されません: n a newline';
    // 出力: 変数は $expand $either ではありません
    echo '変数は $expand ではありません

    ;

    二重引用符で定義された文字列の最も重要な特徴は、変数が解析されることです

    文字列を表現する 3 番目の方法は次のとおりです。ヒアドキュメント ステートメントを使用するには 法的構造:< ;

    文字列が二重引用符またはヒアドキュメント構造で定義されている場合、その中の変数が解析されます。

    配列:

    key は整数または文字列です。値は任意の型にすることができます。 PHP は実際にはインデックス配列と連想配列を区別しないため、PHP 配列には整数型と文字列型の両方のキー名を含めることができます。

    一部のユニットのみキー名を指定

    $array = array(

    "a ",

    "b", 6 => "c", "d", ); var_dump($array); ?>

    Note:试图访问一个未定义的数组键名与访问任何未定义变量一样:会导致 E_NOTICE 级别错误信息,其结果为 NULL

    要修改某个值,通过其键名给该单元赋一个新值。要删除某键值对,对其调用 unset() 函数。

    $arr = array(5 => 1, 12 => 2);
    $arr[] = 56; // This is the same as $arr[13] = 56;
    $arr["x"] = 42; // This adds a new element to
    unset($arr[5]); // This removes the element from the array
    unset($arr); // This deletes the whole array
    ?>

    例子:

    // 创建一个简单的数组
    $array = array(1, 2, 3, 4, 5);
    print_r($array);

    // 现在删除其中的所有元素,但保持数组本身不变:
    foreach ($array as $i => $value) {
    unset($array[$i]);
    }
    print_r($array);

    // 添加一个单元(注意新的键名是 5,而不是你可能以为的 0)
    $array[] = 6;
    print_r($array);

    // 重新索引:
    $array = array_values($array);
    $array[] = 7;
    print_r($array);
    ?>

    以上例程会输出:

    Array(    [0] => 1    [1] => 2    [2] => 3    [3] => 4    [4] => 5)Array()Array(    [5] => 6)Array(    [0] => 6    [1] => 7)

    Note:unset() 函数允许删除数组中某个键。要注意数组将不会重建索引。如果需要删除后重建索引,可以用 array_values() 函数。

    $a = array(1 => 'one', 2 => 'two', 3 => 'three');
    unset($a[2]);
    /* will produce an array that would have been defined as
    $a = array(1 => 'one', 3 => 'three');
    and NOT
    $a = array(1 => 'one', 2 =>'three');
    */
    $b = array_values($a);
    // Now $b is array(0 => 'one', 1 =>'three')
    ?>

    foreach 控制结构是专门用于数组的。它提供了一个简单的方法来遍历数组。

    整数、浮動小数点、文字列、ブール型、およびリソース型の場合、値を配列に変換すると、添字が 0 (このスカラーの値) である要素を 1 つだけ含む配列が得られます。つまり、(array)$scalarValue は array($scalarValue) とまったく同じです。

    NULL を配列に変換すると、空の配列になります。

    array_diff() と配列演算子を使用して配列を比較できます。

    オブジェクトをオブジェクトに変換しても、何も変わりません。他の型の値がオブジェクトに変換される場合、組み込みクラス stdClass のインスタンスが作成されます。値が NULL の場合、新しいインスタンスは空です。配列をオブジェクトに変換すると、キーが対応する値を持つプロパティ名になります。他の値の場合は、scalar という名前のメンバー変数に値が含まれます。

    $obj = (object) 'ciao';
    echo $obj->scalar; // 'ciao' を出力します

    Resource リソースは特殊な種類です変数は外部リソースへの参照を保持します。リソースは特殊な関数

    NULL

    の値によって作成され、使用されます。特殊な

    NULL 値は、変数に値がないことを示します。 NULL 型で使用できる値は NULL のみです。

    次の場合、変数は

    NULL であるとみなされます。 NULL の値が割り当てられます。まだ値が割り当てられていません。 unset()です。

    $var を使用して変数を null に変換 (設定解除) しても、変数は削除されず、その値の設定も解除されません。

    NULL 値を返すだけです。

    call_user_func() や usort() などの一部の関数は、ユーザー定義のコールバック関数をパラメータとして受け入れることができます。コールバック関数は単純な関数だけでなく、静的クラス メソッドなどのオブジェクト メソッドも使用できます。

    擬似型と変数

    mixed は、パラメーターが複数の異なる (ただし、すべてではない) 型を受け入れることができることを示します。

    たとえば、gettype() はすべての PHP タイプを受け入れることができ、str_replace() は文字列と配列を受け入れることができます。

    number は、パラメーターが整数または浮動小数点数であることを示します。戻り値の型として

    void は、関数の戻り値が役に立たないことを意味します。パラメータリストとしての void は、関数がパラメータを受け入れないことを意味します

    関数プロトタイプでは、$... などを意味します。関数が任意の数のパラメーターを受け入れることができる場合は、この変数名を使用します。

    $foo = "0"; // $foo は文字列 (ASCII 48)
    $foo += 2; // $foo は整数 (2) になります
    $foo = $foo + 1.3; // $foo は浮動小数点 (3.3) になります
    $foo = 5 + "10 匹の子豚" // $foo は整数 (15)
    $foo = 5 + "10 匹の子豚"; ; // $foo は整数 (15)

    $a = 'car' // $a は文字列

    $a[0] = 'b'; / $a はまだ文字列です

    echo $a; // bar

    ?>

    とよく似ています。あなたが望む場所変換する変数の前に、かっこで囲まれたターゲットの型が続きます。

    $foo = 10; // $foo は整数

    $bar = (boolean) $foo; // $bar はブール値

    ?> ;




    許可されるキャストは次のとおりです:

    (int), (integer) - 整数に変換されます

    (bool), (boolean) - boolean に変換されます

    (浮動小数点)、( double)、(real) - float に変換 float
  • (string) - 文字列 string
  • (array) - 配列 array
  • に変換
  • (object) - オブジェクト object
  • (unset) - NULL に変換(PHP 5)
  • 括弧内ではスペースとタブを使用できるため、次の 2 つの例は同じ機能を持つことに注意してください。

    $foo = (int) $bar; ( int ) $bar;

    ?>




    文字列リテラルと変数をバイナリ文字列に変換します:

    $binary = (binary )$string; b」バイナリ文字列";

    ?>




    変数を文字列に変換する代わりに、変数を二重引用符で囲むことができます: < ;?php

    $foo = 10; // $foo は整数です

    $str = "$foo"; // $str は文字列です

    $fst = (string) $foo; // $fst も文字列です

    // 出力は「同じです」

    if ($fst === $str) {

    echo "それらは同じ";

    }
    ?>






    定数にはスカラー データ (ブール値、整数、浮動小数点数、文字列) のみが含まれます)。リソース定数を定義できますが、予期しない結果を引き起こす可能性があるため、避けてください。

    定数と変数の違いは次のとおりです。

  • 定数の前にドル記号 ($) はありません
  • 定数は、代入ステートメントではなく、define() 関数を使用してのみ定義できます。 ;
  • 定数は変数のスコープを無視でき、どこでも定義およびアクセスできます。
  • 一度定義した定数は再定義または未定義にすることはできません
  • 定数の値はスカラーのみです。
  • 注: このメソッドはコンパイル時に定義されるため、define() を使用して定数を定義するのとは異なり、const キーワードを使用して定数を定義する場合は、最上位のスコープになければなりません。つまり、const を使用して関数、ループ、if ステートメント内で定数を定義することはできません。

    PHP は、実行するスクリプトに多数の事前定義された定数を提供します。ただし、多くの定数はさまざまな拡張ライブラリによって定義されており、これらの拡張ライブラリが動的にロードされるか、コンパイル時に組み込まれる場合にのみ表示されます。

    コード内の位置に応じて値が変化する魔法の定数が 8 つあります。たとえば、

    __LINE__ の値は、スクリプト内のどの行にあるかによって異なります。これらの特殊な定数は、次のように大文字と小文字が区別されません。

    いくつかの PHP "マジック定数" 名前 説明 ファイル内の現在の行番号。 ファイルの完全なパスとファイル名。インクルードされたファイル内で使用された場合、インクルードされたファイルの名前を返します。 PHP 4.0.2 以降、 ファイルが配置されているディレクトリ。インクルードされたファイル内で使用された場合、インクルードされたファイルが配置されているディレクトリを返します。これは dirname(__FILE__) と同等です。ルート ディレクトリでない限り、ディレクトリ名には末尾のスラッシュは含まれません。 (PHP 5.3.0 の新機能) = 関数名 (PHP 4.3.0 の新機能)。 PHP 5 以降、この定数は定義されたとおりの関数名を返します (大文字と小文字は区別されます)。 PHP 4 では、この値は常に小文字です。 クラスの名前 (PHP 4.3.0 の新機能)。 PHP 5 以降、この定数は定義されたときのクラスの名前を返します (大文字と小文字は区別されます)。 PHP 4 では、この値は常に小文字です。クラス名には、それが宣言されているスコープが含まれます (例: FooBar)。 PHP 5.4 以降、__CLASS__ はトレイトに対しても機能することに注意してください。特性メソッド内で使用される場合、__CLASS__ は特性メソッドを呼び出すクラスの名前になります。 トレイト名 (PHP 5.4.0 の新機能)。 PHP 5.4 以降、この定数は定義されたとおりの特性の名前を返します (大文字と小文字が区別されます)。トレイト名には、それが宣言されるスコープが含まれます (例: FooBar)。 クラスのメソッド名 (PHP 5.0.0 で新しく追加されました)。定義されたとおりのメソッド名を返します (大文字と小文字が区別されます)。 現在のネームスペースの名前 (大文字と小文字が区別されます)。この定数はコンパイル時に定義されます (PHP 5.3.0 の新機能)。

    PHP 支持可变函数的概念。这意味着如果一个变量名后有圆括号,PHP 将寻找与变量的值同名的函数,并且尝试执行它。可变函数可以用来实现包括回调函数,函数表在内的一些用途。

    对象赋值

    $instance = new SimpleClass();
    $assigned = $instance;
    $reference =& $instance;
    $instance->var = '$assigned will have this value';
    $instance = null; // $instance and $reference become null
    var_dump($instance);
    var_dump($reference);
    var_dump($assigned);
    ?>

    运行结果:

    NULLNULLobject(SimpleClass)#1 (1) {   ["var"]=>     string(30) "$assigned will have this value"}

    创建新对象

    class Test{
    static public function getNew(){
    return new static;
    }
    }
    class Child extends Test
    {}
    $obj1 = new Test();
    $obj2 = new $obj1;
    var_dump($obj1 !== $obj2);
    $obj3 = Test::getNew();
    var_dump($obj3 instanceof Test);
    $obj4 = Child::getNew();
    var_dump($obj4 instanceof Child);
    ?>

    以上例程会输出:

    bool(true)bool(true)bool(true)

    使用 ClassName::class 你可以获取一个字符串,包含了类 ClassName 的完全限定名称。

    namespace NS {
    class ClassName {
    }

    echo ClassName::class;
    }
    ?>

    以上例程会输出:

    NS\ClassName

    在类的成员方法里面,可以用 ->(对象运算符):$this->property(其中 property 是该属性名)这种方式来访问非静态属性。静态属性则是用 ::(双冒号):self::$property来访问。

    定义和使用一个类常量

    class MyClass{
    const constant = '定数値';
    function showConstant() {
    echo self::constant . 「ん」;
    }
    }
    echo MyClass::constant 。 「ん」;
    $クラス名 = "MyClass";
    $classname::constant をエコーし​​ます。 「ん」; // 自 5.3.0 起
    $class = new MyClass();
    $class->showConstant();
    echo $class::constant."n"; // 自 PHP 5.3.0 起
    ?>

    自動追加ダウンロード例

    それぞれ MyClass1.php と MyClass2.php のファイルに MyClass1 と MyClass2 のクラスを追加します。 ?php

    function __autoload($class_name) {

    require_once $class_name 。 '.php'; }

    $obj = 新しい MyClass1();

    $obj2 = 新しい MyClass2();
    ?>



    構造関数を持つタイプは、新しいオブジェクトを作成するたびにこの方法を使用するため、オブジェクトを使用する前のいくつかの初期化作業に非常に適しています。

    __LINE__
    __FILE__ __FILE__ には常に絶対パス (またはシンボリック リンクの場合は解決された絶対パス) が含まれますが、それより前のバージョンには相対パスが含まれる場合がありました。
    __DIR__
    __FUNCTION__
    __CLASS__
    __TRAIT__
    __METHOD__
    __NAMESPACE__
    声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
    PHPおよびPython:さまざまなパラダイムが説明されていますPHPおよびPython:さまざまなパラダイムが説明されていますApr 18, 2025 am 12:26 AM

    PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

    PHPとPython:彼らの歴史を深く掘り下げますPHPとPython:彼らの歴史を深く掘り下げますApr 18, 2025 am 12:25 AM

    PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

    PHPとPythonの選択:ガイドPHPとPythonの選択:ガイドApr 18, 2025 am 12:24 AM

    PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

    PHPとフレームワーク:言語の近代化PHPとフレームワーク:言語の近代化Apr 18, 2025 am 12:14 AM

    PHPは、多数のWebサイトとアプリケーションをサポートし、フレームワークを通じて開発ニーズに適応するため、近代化プロセスで依然として重要です。 1.PHP7はパフォーマンスを向上させ、新機能を紹介します。 2。Laravel、Symfony、Codeigniterなどの最新のフレームワークは、開発を簡素化し、コードの品質を向上させます。 3.パフォーマンスの最適化とベストプラクティスは、アプリケーションの効率をさらに改善します。

    PHPの影響:Web開発などPHPの影響:Web開発などApr 18, 2025 am 12:10 AM

    phphassiblasifly-impactedwebdevevermentandsbeyondit.1)itpowersmajorplatformslikewordpratsandexcelsindatabase interactions.2)php'sadaptableability allowsitale forlargeapplicationsusingframeworkslikelavel.3)

    スカラータイプ、リターンタイプ、ユニオンタイプ、ヌル可能なタイプなど、PHPタイプのヒントはどのように機能しますか?スカラータイプ、リターンタイプ、ユニオンタイプ、ヌル可能なタイプなど、PHPタイプのヒントはどのように機能しますか?Apr 17, 2025 am 12:25 AM

    PHPタイプは、コードの品質と読みやすさを向上させるためのプロンプトがあります。 1)スカラータイプのヒント:php7.0であるため、基本データ型は、int、floatなどの関数パラメーターで指定できます。 3)ユニオンタイプのプロンプト:PHP8.0であるため、関数パラメーターまたは戻り値で複数のタイプを指定することができます。 4)Nullable Typeプロンプト:null値を含めることができ、null値を返す可能性のある機能を処理できます。

    PHPは、オブジェクトのクローニング(クローンキーワード)と__Clone Magicメソッドをどのように処理しますか?PHPは、オブジェクトのクローニング(クローンキーワード)と__Clone Magicメソッドをどのように処理しますか?Apr 17, 2025 am 12:24 AM

    PHPでは、クローンキーワードを使用してオブジェクトのコピーを作成し、\ _ \ _クローンマジックメソッドを使用してクローン動作をカスタマイズします。 1.クローンキーワードを使用して浅いコピーを作成し、オブジェクトのプロパティをクローン化しますが、オブジェクトのプロパティはクローニングしません。 2。\ _ \ _クローン法は、浅いコピーの問題を避けるために、ネストされたオブジェクトを深くコピーできます。 3.クローニングにおける円形の参照とパフォーマンスの問題を避けるために注意し、クローニング操作を最適化して効率を向上させます。

    PHP対Python:ユースケースとアプリケーションPHP対Python:ユースケースとアプリケーションApr 17, 2025 am 12:23 AM

    PHPはWeb開発およびコンテンツ管理システムに適しており、Pythonはデータサイエンス、機械学習、自動化スクリプトに適しています。 1.PHPは、高速でスケーラブルなWebサイトとアプリケーションの構築においてうまく機能し、WordPressなどのCMSで一般的に使用されます。 2。Pythonは、NumpyやTensorflowなどの豊富なライブラリを使用して、データサイエンスと機械学習の分野で驚くほどパフォーマンスを発揮しています。

    See all articles

    ホットAIツール

    Undresser.AI Undress

    Undresser.AI Undress

    リアルなヌード写真を作成する AI 搭載アプリ

    AI Clothes Remover

    AI Clothes Remover

    写真から衣服を削除するオンライン AI ツール。

    Undress AI Tool

    Undress AI Tool

    脱衣画像を無料で

    Clothoff.io

    Clothoff.io

    AI衣類リムーバー

    AI Hentai Generator

    AI Hentai Generator

    AIヘンタイを無料で生成します。

    ホットツール

    メモ帳++7.3.1

    メモ帳++7.3.1

    使いやすく無料のコードエディター

    ZendStudio 13.5.1 Mac

    ZendStudio 13.5.1 Mac

    強力な PHP 統合開発環境

    VSCode Windows 64 ビットのダウンロード

    VSCode Windows 64 ビットのダウンロード

    Microsoft によって発売された無料で強力な IDE エディター

    MantisBT

    MantisBT

    Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

    SecLists

    SecLists

    SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。