找回密码
 立即注册
快捷导航

[PHP] php教程 写代码的猫叔

[复制链接]
韭菜 2024-4-2 18:16:13 | 显示全部楼层

https://www.bilibili.com/video/BV1vu4y1z7YV/?p=22
https://www.bejson.com/runcode/php/

输出方法:echo和print

不同点:

  • echo - 能够输出一个以上的字符串,英文逗号隔开
  • print - 只能输出一个字符串,并始终返回1
  • echo比print稍快,并且开销低
<?php
    echo "11";
    echo "1", "2", "3";
    echo("111");
?>

有无括号均可使用:echo 或 echo() 或 print 或 print()

注释

// 单行
# 单行
/*
多行
*/

变量

$a = 11;

# 下划线命名法
$first_name='zhang';
# 小驼峰命名法
$firstName ='zhang';
# 大驼峰命名法
$FirstName ='zhang';

变量以$符号开头,其后是变量的名称

变量名称对大小写敏感($y与$Y是两个不同的变量)

PHP变量名称对大小写敏感!

空白符

echo '

';
$a = '

';

数据类型

字符串、整数、浮点数、逻辑(布尔型)、数组、对象、NULL、资源类型

  • 用var_dump()会返回变量的数据类型和值,一般用于开发调试时使用
  • 只获取数据类型 echo gettype($a);

字符串可以是单引号和双引号,区别:双引号可以输出变量;

$a = "猫";
var_dump($a);   // string(3) "猫"
echo gettype($a);    // string
echo "a的值是:$a";

EOF 界定符

变量会被解析

<?php
    $a = 123;
    echo <<<EOF666
    $a<hr/>
EOF666;
?>

算数运算符

向下取整  intdiv(3.333);  // 3

向上取整  

比较运算符

$a = 10;
$b = '10';
var_dump($a == $b);  // bool(true)
var_dump($a === $b);  // bool(false)

!=  或  <>
!==

条件语句

if(){

}elseif(){

}else{

}
switch(n){
    case 1:

        break;
    case 2:

        break;
    default:

}
for($i = 1; i < 4; i++){

}
$i = 1;
white($i <= 5){
    $i++;
}
$i = 1;
do{
    // ...
    $i++;
}while($i <= 5)

php 有 continue 和 break;

如果是 break 3; 表示跳出3层循环

数组

数值数组

$a = array("", "", "");
$b = ["", "", ""];
print_r($a);
$a = [];
$a[3] = '43';
print_r($a);

array
(
    [3] => "43"
)

关联数组

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

$age = ['mao' => 12, "dog" => 15];
$age['pig'] = 55;

注意:

$a = [
    "2",
    "aa" => "猫1"
    "t",
    "aa" => "狗1"
    "yy"
];
# 结果:
Array(
    [0] => "2"
    [aa] => "狗1"
    [1] => "t"
    [2] => "yy"
)

数组长度  echo count($age);

遍历数组

for($i=0; $i <count($a); $i++){
    echo $a[$i];
    echo "<br>";
}

foreach($a as $value){

}

foreach($a as $key => $value){

}

函数

  • print_r();
  • count();
  • time();    // int类型时间戳
  • date('Y-m-d H:i:s');    //  2023-09-26 15:29:56
  • ...
function func($a, $b){ return $a + $b; }
echo func(2,3);

严格限制函数参数的类型:

declare(strict_type=1);  // 使用严格模式
function func(int $a, int $b){}  // $a 和 $b 只能使用int类型,否则报错
func(123,'453');   // 错误

变量作用域

变量的作用域是 脚本中 变量 可被引用/使用 的部分。

局部和全局(global)作用域

  • 在所有函数外部定义的变量,拥有全局作用域
  • 除了函数外,全局变量可以被脚本中的任何部分访问
  • 要在一个函数中访问一个全局变量,需要使用global关键字
  • 函数内部声明的变量是局部变量,仅能在函数内部访问
$a = "全局a";
function test(){
    global $a;
    $b = "234";
    echo $a;
}
test();
echo $b;

Static作用域

当一个函数完成时,它的所有变量通常都会被删除。然而,有时候希望某个局部变量不要被删除。

要做到这一点,请在第一次声明变量时使用static关键字

每次调用该函数时,该变量将会保留着函数前一次被调用时的值,但是该变量仍然是函数的局部变量

function test(){
    static $a = 0;
    echo $a;
    $a++;
    echo PHP_EOL;  // 换行符
}
test();
test();
test();

删除变量  unset($a);

但是注意,unset不能删除全局变量,如下:

$a = 234;
function func(){
    global $a;
    unset($a);   // 无法删除全局变量 $a    
}
func();
var_dump($a);   // 还能显示  int(234)

判断变量是否存在:isset($a);

超级全局变量

任何位置、任何.php文件都能使用!!!

$GLOBALS

$_REQUEST
$_POST
$_GET
$_FILES
$_ENV
$_COOKIE
$_SESSION

$GLOBALS

print_r($GLOBALS);
Array
(
    [_GET] => Array
        (
        )

    [_POST] => Array
        (
        )

    [_COOKIE] => Array
        (
        )

    [_FILES] => Array
        (
        )

    [argv] => Array
        (
            [0] => script.php
        )

    [argc] => 1
    [_SERVER] => Array
        (
            [JUDGE0_VERSION] => 1.9.0
            [LANGUAGE] => en_US:en
            [PWD] => /box
            [HOME] => /tmp
            [LANG] => en_US.UTF-8
            [JUDGE0_HOMEPAGE] => https://judge0.com
            [JUDGE0_SOURCE_CODE] => https://github.com/judge0/api
            [JUDGE0_MAINTAINER] => Herman Zvonimir Došilović 
            [SHLVL] => 1
            [LC_ALL] => en_US.UTF-8
            [PATH] => /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
            [LIBC_FATAL_STDERR_] => 1
            [_] => /usr/local/php-7.4.1/bin/php
            [PHP_SELF] => script.php
            [SCRIPT_NAME] => script.php
            [SCRIPT_FILENAME] => script.php
            [PATH_TRANSLATED] => script.php
            [DOCUMENT_ROOT] => 
            [REQUEST_TIME_FLOAT] => 1711836076.2897
            [REQUEST_TIME] => 1711836076
            [argv] => Array
                (
                    [0] => script.php
                )
            [argc] => 1
        )

    [GLOBALS] => Array
 *RECURSION*
)
$a = "zhangsan";
function func(){
    $GLOBALS["a"] = "lisi";
}
func();
echo $a;    // lisi
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

温馨提示

关于 注册码 问题

      由于近期经常大量注册机器人注册发送大量广告,本站开启免费入群领取注册码注册网站账号,注册码在群公告上贴着...

关于 注册码 问题

      由于近期经常大量注册机器人注册发送大量广告,本站开启免费入群领取注册码注册网站账号,注册码在群公告上贴着...

Archiver|手机版|小黑屋|DLSite

GMT+8, 2024-9-17 04:05

Powered by Discuz! X3.5 and PHP8

快速回复 返回顶部 返回列表