PHP基础(一)

PHP: "PHP: Hypertext Preprocessor",超文本预处理器的字母缩写)是一种被广泛应用的开放源代码的多用途脚本语言,它可嵌入到 HTML中,尤其适合 web 开发.

1. 变量作用域

  • local
  • global
  • static

1.1 Global

PHP有全局变量和局部变量之分。在函数外部定义的变量为全局变量,函数内部定义的变量为局部变量。

在PHP中,正常情况下,访问全局变量有两种方式:

  1. 利用GLOABLS数组(PHP默认将所有的全局变量存储在了GLOBALS数组中,可以通过GLOBALS[‘变量名’]访问)
  2. 利用global关键字
$x = 5; // 定义全局变量x
function global_test()
{
    global $x; // 声明全局变量
    echo '全局变量' . $x . "<br>";
    echo '通过GLOBALS数组访问' . $GLOBALS['x'] . "<br>";
}
global_test();

1.2 static

PHP中,在函数内部定义的变量为局部变量。当函数调用结束后,会回收被调用函数内部的局部变量。

如果你希望函数调用完毕仍然保存该局部变量的时候,可以用static修饰局部变量。

function static_test()
{
    $y = 2;  三个static_test输出均为2
    echo $y;
    $y++;
}

static_test();
static_test();
static_test();

如上代码,当每次调用函数结束后,系统都会回收$y的内存;因此三次输出的结果均为2。

function static_test()
{
    static $y = 2;  
    echo $y;
    $y++;
}

static_test();
static_test();
static_test();

static修饰$y;当函数调用结束后,不会回收其局部变量的内存;因此执行三次static_test()的结果分别为2,3,4


2. PHP输出函数

  • echo : 可以输出一个或多个字符。
  • print:只允许输出一个字符,返回值总为1
  • print_r : 打印关于变量的易于理解的信息,如是 string、integer 或 float,将打印变量值。如果给出的是 array,将会按照一定格式显示键和元素。
echo "url: <a href='https://www.baidu.com'> echo </a><br>";
print "url: <a href='https://www.jd.com'> print";
echo "<br>"; // 输出html标签的时候,需要使用引号将标签包裹
echo <br>; // html标签必须使用引号包裹,否则报错 

echo "hello word";
echo hello; // 单个单词不用引号,浏览器也能解析
echo hello word; // 单词间有空格的时候,无法输出,会报错

3. PHP定界符

当PHP需要输出大量的HTML文本或者JS脚本的时候,定界符会有很好的效果。

定界符格式:

<<<EOF

EOF;

注意:

  1. 结束EOF必须单独占一行,且顶头写,不能有任何空白符,字符,注释与其在一行。
  2. 定界符字符串不一定必须要是EOF,其他相同的两个字符串当首和尾均可。
  3. 位于开始标记和结束标记之间的变量,html标签可以被正常解析,但是函数不行。
$title = 'PHP';
$a = <<<EOF
<h1>$title</h1>
<p>content</p>
EOF;

echo $a;

4. PHP数据类型

var_dump函数:可以输出变量的类型和值。

4.1 字符串-string

可以理解为使用引号包裹的均为字符串类型。

$x = "hello";
echo $x;
var_dump($x);  // string(5) "hello"

4.2 整型

  • 没有小数的数字
  • 可以为正数或者负数
  • 可以是十进制,十六进制(0x),八进制(0);但是使用echo或var_dump输出的时候,十六进制和八进制都会被转换为十进制输出
$int1 = 10;
var_dump($int1);
print "<br>";

$int2 = -10;
var_dump($int2);
print "<br>";

$int3 = 0x5C; // 十六进制
var_dump($int3);
echo "<br>";

$int4 = 057;
var_dump($int4); // 八进制
echo "<br>";

echo $int4;
echo "<br>";

4.3 浮点型-float

带小数部分的数字,或指数形式。

$x = 10.365;
var_dump($x);
echo "<br>";

$x = 2.4e3; // 2.4*10三次方
var_dump($x);
echo "<br>";

4.4 布尔型-bool

$t = true;
$f = false;
echo $t; // true为1,false为0
var_dump($f); // bool(false)
print "<br>";

4.5 数组-array

PHP中数组有三种:

  • 数值型数组:索引为数字,从0开始
  • 关联数组:键值对形式,类似于python中的字典
  • 多维数组:数组中的元素仍然是数组

  1. 数值型数组:

    $colors = array("blue", "red", "yellow"); // 创建数组
    

    计算数组长度:

    echo count($colors); // 3	
    

    遍历:

    for($x=0;$x<count($colors);$x++){
    echo $colors[$x]."<br>";
    }
    
  2. 关联数组

    $students = array('man'=>'zhaoyun','woman'=>'xiaoqiao'); // 创建数组
    

    计算数组长度

    echo count($students);
    

    遍历关联数组要使用foreach

    foreach($students as $key=>$value){
        echo "key is ".$key." value is ".$value;
    }
    
  3. 输出数组测试

    var_dump($colors); 
    // array(3) { [0]=> string(4) "blue" [1]=> string(3) "red" [2]=> string(6) "yellow" }
    echo "<br>";
    
    echo $colors; 
    // 输出结果为Array;直接打印数组变量无法输出所有元素的值。
    // 此功能可靠print_r实现
    echo "<br>";
    
    print_r($colors); 
    // Array ( [0] => blue [1] => red [2] => yellow )
    echo "<br>";
    
    echo $colors[1]; // red
    echo "<br>";
    
  4. 数组排序

  • sort(): 升序排序

  • rsort():降序排序

  • asort():根据值升序

  • ksort():根据键升序

  • arsort():根据值降序

  • krsort():根据键降序

    排序函数会对原数组内容排序,然后将排好序的内容覆盖原数组的顺序。

    $num_list = array(1,3,4,8,2,7);
    print_r($num_list);  
    // Array ( [0] => 1 [1] => 3 [2] => 4 [3] => 8 [4] => 2 [5] => 7 )
    echo "<br>";
    
    sort($num_list);
    print_r($num_list);  
    // Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 7 [5] => 8 )
    

4.6 NULL

表示该变量无值,设置为NULL可用来清空变量数据

$x = ""; // x为空字符串
$y = NULL; // y为NULL值

var_dump($x); // string(0) ""
echo "<br>";
var_dump($y); // NULL

5. 类型比较

  • == : 松散比较,只比较值,不比较类型。
  • === : 严格比较,比较值和类型。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值