PHP语法笔记

首先

个人备忘录。

变量展开

我认为可以像 ${变量名称} 这样使用变量的方法。

<?php
    for ($i = 0; $i < 5; $i++) {
        ${"num" . $i} = $i;
    }

    echo $num0 . "\n";
    echo $num1 . "\n";
    echo $num2 . "\n";
    echo $num3 . "\n";
    echo $num4 . "\n";

?>
0
1
2
3
4

我想表达的是可以用变量来表示变量名的一部分。

我不知道在哪里使用,但这感觉非常划时代,所以我做了备忘录。

参照渡し – 传址调用

在PHP中,是通过引用传递吗?与C语言的感觉不同,所以我总结了一下。

<?php
    function double($n){
        $n *= 2;
    }

    $a = 10;
    double($a);

    echo $a;
?>
10

这就是我感觉到的。

<?php
    function double(&$n){
        $n *= 2;
    }

    $a = 10;
    double($a);

    echo $a;
?>
20

这个也差不多符合感觉。加上「&」的位置和感觉有些不同。

感覺不同了。

<?php
    function double($n){
        for ($i = 0; $i < 3; $i++) {
            $n[$i] *= 2;
        }
    }

    $a = [1, 2, 3];
    double($a);

    var_dump($a);
?>
array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}

我之前以为数组是按引用传递的,但似乎不对。

使用foreach循环而不是for循环会变得更加复杂。

我读了下面的内容,对为什么会变成这样非常理解了。
【PHP超入门】关于值的赋值和值传递
【PHP超入门】关于引用(reference)的赋值

偶奇判断能力

因为我对这是什么东西感到困惑,所以我留下了备忘录。

if ($a%2 == 1) {
    echo "奇数";
}
if ($a & 1) {
    echo "奇数";
}

因为我对PHP中的位运算符经验不足,所以一眼就看不懂。

以md訓練為由進行完全複製操作
https://www.php.net/manual/zh/language.operators.bitwise.php

例名前結果\$a & \$b論理積\$a および \$b の両方にセットされているビットがセットされます\$a | \$b論理和\$a または \$b のどちらかにセットされているビットがセットされます\$a ^ \$b排他的論理和\$a または \$b のどちらか一方にセットされており、両方にセットされていないビットがセットされます~ \$a否定\$a にセットされているビットはセットせず、そうでないものは逆にします\$a << \$b左シフト\$a のビットを左に \$b ビットシフトする (各シフトは “2をかける” ことを意味します)\$a >> \$b右シフト\$a のビットを右に \$b ビットシフトします (各シフトは “2で割る” ことを意味します)

在表示逻辑和运算时,我在表格中遇到了困难。
参考
通过在Qiita的帖子中转义@符号
垂直线

结束

广告
将在 10 秒后关闭
bannerAds