[易学]编程语言PHP超级基础语法

你好。

我想进行编程,但是我不知道从什么开始。我正在使用WordPress,但我想在程序级别对其进行自定义。我下载了MAMP / XAMPP,如何编写程序?

在本文中,我将向您介绍PHP基础知识!提供示例和说明,因此请阅读并练习!

(环境:使用Mac OS X El Capitan版本10.11.2,PHP 5.6.10。)

PHP基础

PHP块

示例)helloworld.php

<?php
    echo 'Hello World!';
?>

这是一个PHP示例程序。

这个PHP程序<“?Php”被称为PHP块的开始标签,而“?Php”> 」の部分を閉じタグと呼びます。

这些开始标记“<?php 」と 閉じタグ 「 ?>“”之间的部分称为“ PHP块”,并且在此块中编写的内容作为PHP程序执行。
在此示例中,“回声‘Hello World!’“;”部分将作为PHP程序执行。

样本)endtag.php

<?php
   echo 'PHPの閉じタグは省略可能です';

实际上,可以省略PHP标记。

与示例程序一样,建议不要为“仅描述PHP的文件”编写结束标记。但是,在PHP程序之后编写HTML等时,除非写入“结束标记”,否则将发生错误。

评论

样本)comment.php

<?php
    // echo 'この行は出力されません (一行コメント)';
   # echo 'この行は出力されません (一行コメント)';

  /*
    echo 'この行も';
    echo 'この行も';
    echo 'この行も出力されません (ブロックコメント)';
  */

  echo 'この行は出力されます。';

有时您会描述在PHP程序文件中进行了哪种处理。在这种情况下使用“注释”。

注释包括单行注释和块注释。 “ //”和“#”用于单行注释,即使在这些符号后编写程序,也不会执行。

在多行上写注释时使用块注释。

变量

示例)variable.php

<?php
   $num  = 7;
   $NUM  = 10;
   $str  = 'これは文字列です。';
   $bool = true;
   $_var = 'string';
   $var_var = 'variable';

此示例代码声明变量。

变量经常“框”可以比较。在此示例中,名为$ num的框临时记录了整数值7。这是一个变量。

有变量命名规则。

首先,请确保在其前面加上“ $(美元符号)”。然后跟随变量的名称。变量名称始终可以以字母或“ _(下划线)”开头,后跟字母,数字和下划线。变量名称区分大小写。

例如,“ $ num”和“ $ NUM”被识别为不同的变量。

*可用的字符串:a-z,A-Z,字节从127到255(0x7f-0xff)

变量命名规则摘要

  • 在“ $(美元标记)”之后的名称变量
  • 变量名称以字母或“ _(下划线)”开头
  • 您可以使用“ a-z,A-Z,字节从127到255(0x7f-0xff),0-9,_(下划线)”作为变量名称。
  • 区分大小写

引用: PHP官方参考

* 2016/03/16更正了变量的解释。
 来自@rana_kualu关于变量命名约定qiita发表我让你指出错误所在。
 ありがとうございます。

不变

样本)constant.php

<?php
    define('FIRST_NAME', 'my first name');
    const LAST_NAME = 'my last name';

    echo FIRST_NAME;
    echo LAST_NAME;

此示例代码声明一个常量。

与前面解释的变量不同,常量一旦定义就无法更改。由于具有此属性,我们定义了要重用于常量的值。

有两种声明常量的方法。
一种是“定义(define)‘定数名’, ‘定数の値’),“另一个”是“定义('常量名称','常量值')”。

常量的命名规则与变量的命名规则基本相同,但是习惯上以所有大写字母声明常量名称。

算子

示例)operator.php

<?php
  echo 1 + 1; // 加算
  echo 6 - 3; // 減算
  echo 3 * 4; // 積
  echo 12 / 2; // 商
  echo 13 % 2; // 剰余

在这里,我们将介绍操作员。我想大家都在学校学习数学,所以我不会解释加法,减法,乘积和商。

关于余数,这将返回余数除以某个数字。在示例代码中,它太大了“ 1”,因此输出结果“ 1”。

示例)operator_plus.php

<?php
    /**
     * $num_1 = $num_1 + 1 と同じ
     * 結果: 101
     */
    $num_1 = 100;
    echo $num_1 += 1;

    /**
     * $num_2 = $num_2 - 1 と同じ
     * 結果: 99
     */
    $num_2 = 100;
    echo $num_2 -= 1;

    /**
     * $num_3 = $num_3 * 2 と同じ
     * 結果: 200
     */
    $num_3 = 100;
    echo $num_3 *= 2;

    /**
     * $num_4 = $num_4 / 2 と同じ
     * 結果: 50
     */
    $num_4 = 100;
    echo $num_4 /= 2;

    /**
     * $num_5 = $num_5 % 3 と同じ
     * 結果: 1
     */
    $num_5 = 100;
    echo $num_5 %= 3;

前面介绍的运算符也可以像以下示例代码一样使用。

样本)incre_decre.php

<?php
    $num = 100;

    echo $num++; // 100
    echo $num; // 101
    echo ++$num; // 102
    echo $num; // 102
    echo $num--; // 102
    echo $num; // 101
    echo --$num; // 100
    echo $num; // 100

这是“ ++(增量)”和“—(递减)“乍一看似乎很困难。 “ ++”和“—“”给变量加1并减去1。看起来很容易,但是请注意,如果在变量之前或之后编写返回的值,则该值将发生变化。

为了解释此示例代码,如果在变量之后添加“ ++”,它将返回100,然后将1加到变量中。结果显示为“ 100”,但变量的值为“ 101”。结果在下一个输出中输出。您可以以相同的方式考虑减量。

还有许多其他运算符,包括串联,比较和逻辑运算符。

样本)operator_2.php

<?php
/**
 * 連結演算子
 *
 * 文字列を連結するには .(ドット)を使います
 */
    // 出力結果: Yamada Hanako
    echo "Yamada " . "Hanako";

/**
 * 比較演算子
 *
 * 「 == 」 等しい
 * 「 === 」等しい(厳密)
 * 「 != 」 異なる
 * 「 !== 」異なる(厳密)
 * 「 <> 」 異なる(!= と同じ)
 * 「 > 」  大きい
 * 「 >= 」 以上
 * 「 < 」  小さい
 *  「 <= 」以下
 */

var_dump(1 == 1); // true
var_dump(1 === "1"); // false
var_dump(1 != 2); // true
var_dump(1 !== "1"); // true
var_dump(1 <> 2); // true
var_dump(10 > 10); // false
var_dump(10 >= 10); // true
var_dump(1 < 5); // true
var_dump(5 <= 5); // true

/**
 * 論理演算子
 *
 * && ~ かつ ~(and)
 * || ~ または ~ (or)
 * !  ~でない
 *
 */

$a = true;
$b = true;
var_dump($a && $b); // true
var_dump($a || $b); // true

$a = true;
$b = false;
var_dump($a && $b); // false
var_dump($a || $b); // true

$a = false;
$b = false;
var_dump($a && $b); // false
var_dump($a || $b); // false

$a = false;
$b = true;
var_dump(!($a && $b)); // true
var_dump(!($a || $b)); // false

数组

样本)array.php

<?php
    // これも可能: $campanies = ['apple', 'microsoft', 'facebook'];
    $campanies = array('apple', 'microsoft', 'facebook');

    echo $campanies[0]; // apple
    echo $campanies[1]; // microsoft
    echo $campanies[2]; // facebook

一个数组可以管理多个值。
要使用数组,请使用array()定义值。此示例代码总结了阵列中的公司名称。

访问这些元素很容易。您可以通过在变量上放置方括号([])并在其中指定数字来访问它。

在此括号中指定的数字称为“下标”。注意,下标以“ 0”开头。

关联数组

样本)associative_array.php

<?php
    $juice = array(
        'orange' => 'orange juice',
        'apple'  => 'apple juice',
        'grape'  => 'grape juice',
        'banana' => 'banana juice'
    );

    echo $juice['orange'];
    echo $juice['apple'];
    echo $juice['grape'];
    echo $juice['banana'];

关联序列与之前介绍的序列相似。

在数组中,通过指定下标来访问元素。在关联数组中,您可以自己命名该元素并使用该名称访问该元素,而不是此下标。

用于访问此元素的名称称为“键”。

在示例代码中,键是水果的名称。元素是定义果汁名称的关联数组。

if – elseif – else

示例)if.php

<?php
/**
 * if (条件) {
 *     条件が真の場合に実行されます
 * } else {
 *     条件式が偽の場合に実行されます
 * }
 *
 */

    // パターン1
    $is_human = true;
    if ($is_human) {
        echo 'あなたは人間です';
    }

    // パターン2
    $is_fruit = false;
    if ($is_fruit) {
        echo 'これは果物です';
    } else {
        echo 'これは果物ではありません';
    }

    // パターン3
    $fruit = 'mikan';
    if ($fruit === 'banana') {
        echo 'バナナです';
    } elseif ($fruit === 'apple') {
        echo 'りんごです';
    } elseif ($fruit === 'mikan') {
        echo 'みかんです';
    } else {
        echo 'なにか';
    }

在此,说明“ if”。

“ If”是控制语法之一。可以通过编写条件(例如条件表达式为true或false)来控制程序。

如示例代码所示,“ if”和“ if”– else 」、「 if – elseif –也可以通过正确使用“其他”分支条件。

一会儿

样本)while.php

<?php
/**
 * 一会儿 (条件式) {
 *     条件式が真である場合、
 *     この { } に囲われた処理が繰り返し実行されます。
 * }
 */

    $count = 0;

    一会儿 ($count <= 100) {
        echo $count;
        $count++;
    }

“当”是控制语法之一,当条件表达式为true时,用{}编写的过程将继续重复执行。

示例代码是使用“ 一会儿”从1到100输出的程序。当您要执行重复处理时使用。

有一种常用的语法,带有“ 一会儿”。
那就是“断裂”和“继续”。

如果要中断循环或强制终止,请使用“中断”。
另外,如果条件判断为真,并且您想跳过该过程,请使用“继续”。

样本)break_continue.php

<?php
    $count = 1;
    一会儿($count <= 100) {
        if ($count === 9) {
            break;
        }

        if ($count % 3 === 0) {
            $count++;
            continue;
        }

        echo $count . "\n";
        $count++;
    }

此示例代码是一个输出1到100的程序。

但是,当其为3的倍数时,该数字用作“继续”,并且跳过该处理,因此不输出该数字,并且当变量$ count变为9时,由于“中断”而被强制停止循环处理。因此,只能输出8个。

对于

示例)for.php

<?php
/**
 * 对于 (初期化式; 条件式; 反復式) {
 *     処理
 * }
 *
 */

    $fruits = array(
        'orange', 'melon', 'grape', 'banana', 'strawberry'
    );

    对于 ($i = 0; $i < 5; $i++) {
        echo $fruits[$i];
    }

“ For”是用于迭代处理的便捷语法。

“ For”具有“初始化表达式,条件表达式,迭代表达式”,这似乎很困难,但是可以。

操作流程如下。

①执行初始化公式
(2)接下来,查看条件表达式,如果条件表达式为true,则执行{}中包含的过程。
如果为假,则不执行任何处理,并且“ 对于”的操作完成。
(3)在内部执行处理并执行迭代表达式。
④再次返回②,如果是,则执行该过程。如果为假,则结束。

重复这些操作,直到“ 对于”操作完成为止。

在示例代码中,“ 对于”用于输出数组的元素。

(1)首先,由于执行了初始化表达式,所以将变量“ 0”分配给变量“ $ i”。
(2)之后,查看条件表达式,变量$ i小于“ 5”,因此条件表达式为true。
(3)因为变量$ i被用作下标,所以输出带有下标“ [0]”的元素。 (在这种情况下,橙色)
然后执行迭代表达式,并将“ 1”添加到变量$ i。
④再次执行与②相同的操作。

这是通过指定次数来执行迭代处理的便捷语法。

前言

示例)foreach.php

<?php
/**
 * 前言 (配列 or オブジェクト as 要素) {
 *     処理
 * }
 *
 */

    $fruits = array(
        'orange', 'melon', 'grape', 'banana', 'strawberry'
    );

    前言 ($fruits as $fruit) {
        echo $fruit;
    }

/**
 * 前言 (配列 or オブジェクト as キー => 要素) {
 *     処理
 * }
 *
 */

    $fruits_juice = array(
        'orange' => 'orange juice',
        'melon'  => 'melon juice',
        'grape'  => 'grape juice',
        'banana' => 'banana juice',
        'strawberry' => 'strawberry juice'
    );

    前言 ($fruits_juice as $fruit => $juice) {
        echo $fruit . "(果物) => " . $juice . "(ジュース)<br>";
    }

“ Foreach”是用于遍历数组和对象的便捷语法。

与前面介绍的“ 对于”不同,没有指定重复次数。该过程从数组的开头到结尾执行。此时,将对数组的每个元素执行处理。

示例代码介绍了两种类型的模式,即“ 前言”。

一种是仅从数组中提取元素并执行该过程。另一种是从关联数组中提取“键”和“元素”。

功能

什么是功能?您可以简单地通过使用诸如“ if”之类的控制结构来编写过程,而无需使用函数。然而,随着处理量的增加,前景变得更糟并且更加复杂。因此我们使用一个函数。

通过将一些处理放在一起并作为函数编写出来,外观会更好。导出的函数可以重用于其他处理,并且您不必一遍又一遍地编写类似的代码。

实际上,PHP预先附带了许多有用的功能。这种功能称为“内置功能”。

这是示例代码。

样本)function.php

<?php
/**
 * ・関数を自分で定義する場合
 *
 * function 功能名 (パラメータ1, パラメータ2) {
 *     {}内に処理を書きます。
 *
 *     何か値を返す(戻り値)場合は「 return 」を使います
 *     return 戻り値;
 * }
 *
 * ・定義した関数を利用する場合
 *
 * 功能名(引数1, 引数2);
 *
 */

/**
 * Hello Worldと出力する関数
 */
function helloWorld() {
    echo 'Hello World';
}
helloWorld();

/**
 * 引数に数値を与えてあげると
 * 引数に与えた値を2倍にした値を返す関数
 */
function getDoubleNum($num) {
    return $num * 2;
}

/**
 * count()は要素の数を返すビルトイン関数
 */
    $fruits = array('apple', 'banana', 'lemon');
    // この例では、3を返します。
    echo count($fruits);

请阅读有关如何定义功能的注释。

作为补充,请注意,如果在定义函数时准备参数,除非传递值,否则会发生错误。

样本)function_2.php

<?php
    $fruits = 'apple banana orange';

    /**
     * 变量$fruitsに、「 orange 」という文字列が
     * 含まれているかを確かめる
     *
     * 注意: 文字列の開始位置は「 0 」から
     */

    // 13と値が返ってくるので、
    // 13文字目にorangeの最初の文字が見つかったことを表す
    echo strpos($fruits, 'orange');

    /**
     * 变量$fruitsから、文字列である「 banana 」を抜き取る
     */
    echo substr($fruits, 6, 6);


    $pizza  = "piece1,piece2,piece3,piece4,piece5,piece6";

    /**
     * ,(カンマ)で区切られた文字列を
     * カンマごとに区切って配列にして返します
     *
     * 第1引数に、区切り文字を指定します。ここでは「 , 」
     * 第2引数に、文字列を指定します。
     */
    $piecePizza = explode(',', $pizza);
    var_dump($piecePizza);

还有更多内置功能,因此请签出并使用。

PHP实践

在这里,让我们使用到目前为止所学的知识来创建一个程序。
首先,创建一个fizzbuzz程序。

前提条件如下:
①输出从1到100
(2)是3的倍数时输出“ fizz”。
③5的倍数时输出“嗡嗡声”。
④如果是3的倍数,也是5的倍数,则输出“ fizzbuzz”。

首先,让我们考虑一下!

示例)fizzbuzz.php

<?php
    对于 ($i = 1; $i <= 100; $i++) {
        if ( $i % 3 === 0 && $i % 5 === 0 ) {
            echo "fizzbuzz\n";
            continue;
        }

        if ( $i % 5 === 0 ) {
            echo "buzz\n";
            continue;
        }

        if ( $i % 3 === 0) {
            echo "fizz\n";
            continue;
        }

        echo $i . "\n";
    }

定义一个函数来查找三角形,四边形或梯形的面积
让我们找到区域。

样本)area.php

<?php
/**
 * 四角形の面積を求める関数
 * $base   => 底辺
 * $height => 高さ
 */
    function getSquareArea($base = 1, $height = 1) {
        return $base * $height;
    }

/**
 * 三角形の面積を求める関数
 * $base   => 底辺
 * $height => 高さ
 */
    function getTriangleArea($base = 1, $height = 1) {
        return $base * $height / 2;
    }

/**
 * 台形の面積を求める関数
 * $upperBase => 上底
 * $lowerBase => 下底
 * $height    => 高さ
 */
    function getTrapezoidArea($upperBase = 1, $lowerBase = 1, $height = 1) {
        return ($upperBase + $lowerBase) * $height / 2;
    }

    echo getSquareArea(4, 5) . "\n"; // 20
    echo getTriangleArea(6, 8) . "\n"; // 24
    echo getTrapezoidArea(2, 3, 4); // 10

最后,可能有点困难!
让我们编写一个计算地板的程序!
示例)在5楼的情况下,5 * 4 * 3 * 2 * 1 = 120。
示例)factorial.php

 
<?php
    function getFactorial($num) {
        if ($num === 1) {
            return $num;
        }

        return $num * getFactorial($num -1);
    }

    echo getFactorial(5);
 

您也可以从定义的函数中调用自己的函数。该功能称为“递归功能”。这似乎有些复杂,但是一旦习惯了,就可以进行下限计算之类的事情,那么为什么不尝试掌握它呢?

最后

你觉得呢。

自从本文标题为“ Super Basic”以来,我已经简要介绍了基本语法以及示例代码。但是,仍有许多我无法介绍的概念和语法。

如果有些读者想了解更多或从这次机会中学到更多,那么许多工程师都发表了文章,因此向他们学习是一件好事。有许多基本的PHP书籍正在出售,因此最好去书店。没有什么能打动您的兴趣!

撰写本文的人

木田亮介

1991年出生,住在大阪的一名网络工程师。我的爱好是在咖啡馆读书。@_ryskit