【PHP Telegram Bot】Day12 - 基础(1):变数、常数与资料型态

资料型态(型别)Data Type

首先要介绍一个函式 gettype(),这个函式里面填上东东,他就会吐出那个东东的「型别」,最後再用 echo 印出来就行了

echo gettype('string'); // string

另外 var_dump() 也可以显示出「型别」,这个函式不需要 echo 直接就会印出结果,而且不只印出型别还会印出里面的资料

var_dump(true); // bool(true)

PHP 有八种基本型别如下:

// 1. 布林值 boolean
$bool1 = true;
$bool2 = false;

// 2. 整数 integer
$int = 100;

// 3. 浮点数 float
$float = 12.34;

// 4. 字串 string
$string1 = '12.34';
$string2 = "true";

// 5. 阵列 array
$array1 = ['key1' => 'value1', 'key2' => 'value2'];
$array2 = ['a', 'b'];
$array3 = array('a', 'b');

// 6. 物件 object
$object = new MyClass();
$object->method();

// 7. 资源 resource
$resource = fopen('some.file', 'w');

// 8. 空值 null
$null = null;

其实我很少在记这些,这些都很常见,之後还会再看到,现在还无法理解也没关系


变数 Variable

其实这个已经出现好几次啦,PHP 变数最明显的特徵就是以 $ 钱字号开头的东西

你可以想像「变数」是一个只能装一样东西的盒子,如果你想装进第二个东西时,第一个就会被覆盖掉

$a = 'apple';
$a = 'air';
echo $a; // air

另外 = 这个符号不是等於的意思,正确意思是把後面的东西放进盒子里, $a = 'b'; 读作把 'b' 字串赋值给 $a 变数

变数的名称是可以自己决定的

  • 区分大小写
  • 可以用中文(非常不推荐)
  • 不能用数字开头
  • 不能使用 $this 命名
  • 不要使用保留字

变数保留字可以在空文件中按下 $ 看到
https://ithelp.ithome.com.tw/upload/images/20210921/20132916rp1zUFl5rS.png
大多都是以 _ 开头的大写字,变数命名时几乎不会取到和保留字相同的名称

在 php 中不需要宣告变数,但是必须必须先赋值才可以使用,不赋值就使用会出现错误

$a;
echo $a;
PHP Notice:  Undefined variable

可以用 isset() 检查变数,如果值「不存在」或是「null」就会返回 false

$a;
var_dump(isset($a)); // false
$a = "";
var_dump(isset($a)); // true
$a = null;
var_dump(isset($a)); // false

常数 Constant

常数不可以用 $ 作为开头,用在不会变动的值,并且有两种定义方式如下:

define('WEBHOOK_URL', 'example.com');
echo WEBHOOK_URL; // example.com
const API_URL = 'api.telegram.org';
echo API_URL; // api.telegram.org

命名规则 Case Styles

强烈建议与开发团队保持相同名规则,才不会让程序码看起来很乱

只有自己开发时,可以选择自己喜欢的命名方式,记得保持一致

  1. 驼峰式 Camel Case
    • 小驼峰 Lower Camel Case
      lowerCamelCase
      通常会用在函式命名
    • 大驼峰 Upper Camel Case
      UpperCamelCase
      通常会用在 Class 命名
  2. 蛇式 Snake Case
    snake_case
    通常用在变数命名
  3. 大写蛇式 Snake Case (All Caps)
    UPPER_CASE
    常数命名时使用
  4. 烤肉串式 Kebab Case
    kebab-case
    这个较少在档案中见到,通常会使用在 HTML 的档名和套件名称(这样网址比较好看)

<<:  Day06-Gitlab runner 简介

>>:  [Day17] - 在 Vue 中引入现成的 Web Component

Day20. Blue Prism 的烤肉串-BP 串Objects页流程传递参数

中秋节应景就是要吃烤肉, 今年疫情猖獗因此规模较为收敛只能在家烤烤吃吃, 过过瘾就好, 不过,Blu...

day 14 - drone 的go-test & golangci-lint

自己的产出自己负责!每次交付专案之前我都会想到这句话, 是不是该再检查一下 程序码已经成功的buil...

方丈的安全观 Day1

老衲是志在参加不在成铁人 肝的硬度决定能力的高度,油的厚度决定了嘴炮的层度! Day1来了!! 台湾...

Day15 第十五天才介绍学习路径是否搞错什麽

本次预期会写一下的题目介绍 渗透测试基础 关於渗透测试/过程 工作和职业机会 练习 基本环境安装 V...

解决venv中无法安装numpy的问题(Could not build wheels for numpy which use PEP 517)

懒人包 在venv下,执行 pip install --upgrade pip 当上述指令失败时,执...