PHP基本语法

PHP基本语法

PHP是超文本预处理器 由服务器解析执行 可以与 html 进行混编(嵌入) ,PHP是一种弱类型语言

1.1 PHP标记

	// 第一种(推荐使用)
    <?php

    // 第二种:纯 php 文件
    <?php
    //其它标记 (了解)
 	<? ... ?>  // 短格式此类型需要在php.ini 中开启
    <script laguage=”php”>....</script>

1.2 语法规则

由于我们在apache的主配置文件中设置了php文件的扩展名.php,

  1. 所以所有的php文件的扩展名都是.php
  2. php文件必须通过域名访问,php文件中不能包含中文
  3. php每一条语句后必须有;
  4. php中的变量名必须区分大小写,其余的函数名、方法名、类名都不区分大小写,但建议区分。

1.3 注释

  • 单行注释使用 //注释内容

  • 多行注释 /* 多行注释*/

    多行注释不能嵌套

变量及操作

PHP是弱类型语言,变量的类型通常是根据该变量的值决定

  1. PHP中以 $ 作为前缀来定义变量,以a~z(大小写)或 _ 下划线定义变量名

  2. 变量是内存中用于临时存储值空间,称为变量名。变量名是用于对这个内存中的数据进行引用的

  3. 在大多数编程语言中,变量只能保持一种类型的数据,而且这个类型必须在使用变量前声明,例如C语言中。

  4. 在PHP中,变量的类型通常是根据该变量使用的上下文在运行时(即变量的值)决定的。

    简单来说,var = 1;就是数字,var2 = '1’就是字符串,变量类型是由值决定的。

语法:
	$变量名=;
说明:
	必须以$符开头
	变量名只能包含字母、数字、下划线,只能以字母、下划线开头,不能以数字开头(数字不能紧挨着$)
    变量严格区分大小写
<?php
    // 定义变量
    $v1 = 1;
	$v2 = 1;
	$result = $v1 + $v2;
	echo $result;

传值与引用

传值赋值

直接使用 = 将变量的值赋值给另一个变量。

$a = 1;
$b = $a;
$b = 2;
echo $a;//结果是1

引用赋值

将一个变量的内存地址赋值给另一个变量的行为即传址赋值。需要在 = 等号前加上 & 引用符号,这样两个变量指向内存中的同一个地址,任何一个变量的改变都影响到另一个变量,有点类似于快捷方式的概念。

改变其中任何一个变量的值 另一个也会随着改变
Unset 其中任何一个变量的值 另一个不变
值类型:除对象
引用类型:对象

使用 &
引用 给一个变量起了一个别名

$a = 1;
$b = &$a;
$b = 2;
echo $a;//结果是2

2.声明八进制与十六进制整型

//声明八进制 以 0 开头 后面跟 0-7 组成
    $a = 012;
    var_dump($a);
//声明十六进制 以 0x 开头 后面跟 0-9a-f 组成
    $b = 0xaf;
    var_dump($b);

可变变量

将一个变量的值 作为 另一个变量的名称($$ a 写 法 读 法 从 右 往 左 一 个 a 写法 读法 从右往左 一个 a一个$读)

  1. 通过一个变量访问另一个变量
// 通过一个变量访问另一个变量
<?php
    // 定义变量
    $v = 'age';
	$age = 20;
	echo $v;  // $v 解析为age
	echo $$v; // $v 解析为age $$v 解析为$age
  1. 通过一个变量创建另一个变量
// 通过一个变量创建另一个变量
<?php
    // 定义变量
    $v = 'age';
	$$v = 20;
	echo $age;  // 20

静态变量

使用关键字static声明一个静态变量,对该函数的调用之间共享,并且仅在第一次被调用赋予初始值。

<?php
/**
 * 静态变量
 */
function make() {
   
    $num = 1;
    $num = $num + 1;
    return $num .'<br>';
}

echo make();  // 2
echo make();  // 2
echo make();  // 2

echo '<hr>';
function show() {
   
    static $num = 1;  // 相当于只在第一次函数调用才执行
    $num = $num+1;
    return $num .'<br>';
}
echo show();  // 2  
echo show();  // 3
echo show();  // 4

变量作用域

变量作用域指变量在代码中可以访问的位置。

超全局变量

可以代码的任何位置都可以访问的变量

变量 说明
$_GET 地址栏GET提交
$_POST 表单POST提交
$_FILES 文件上传变量(form表单中添加属性enctype="multipart/form-data">
$_SESSION session会话变量
$_COOKIE cookie值变量
$_GLOBALS 全局变量
$_REQUEST 包含$_GET、$_POST、$_COOKIE
$_SERVER 服务器环境变量
全局变量

全局声明(函数外声明)的变量会保存在 $_GLOBALS 中,函数内默认不能访问到全局变量,在函数中访问需要使用 global 关键字。

$hd='后盾人';
function p() {
	//利用 global 引入全局变量
	global $hd; 
	echo $hd;
}
p(); 

也可以使用全局数组$GLOBALS调⽤用全局变量量。 如:$GLOBALS['hd'];

检测变量

通过isset 函数可以检测变量是否定义。

var_dump(isset($name));
// 结果是false
变量销毁

php在全部代码执行结束后会删除所有变量,也使用 unset 函数可以在程序运行中删除变量。

$name='houdunren.com';
unset($name); // 删除变量就是将变量从内存中销毁

全局变量不能在函数中删除

$name = 'houdunren.com';
function run()
{
    global $name;
    unset($name);
}
run();
echo $name;
// 依然可以输出 houdurnen.com

在所有输出前使用下面的代码可以正确显示中文:

header('Content-type:text/html;charset=utf-8');
定义符

定界符文本表现的就和双引号字符串一样,在定界符文本中不需要转义引号,适合输入大量文本。

结束符必须从第一列开始,并且后面除了分号以外不能包含任何其他字符,空格也不可以。

$string =<<<str
这是使用定界符输入的内容
str;
echo $string;
连接符

多个字符串使用 .符号连接

$name = '后盾人';
$url  = 'houdunren.com';
echo $name.$url;
转义

转义是将有多种含义的字符进行转换,比如 $即是变量前缀也是美元符号,就需要转义在不同场景进行改变。

echo  "变量定义 \$name = 'houdunren.com',学会了吗?";

常量

常量是一个简单值的标识符(名字)。常量默认为大小写敏感。按照惯例常量标识符总是大写的。

声明常量

语法1define(‘常量名称’, 常量值) 值是标量
	define(‘常量名称’, 常量值,false) 代表严格区分大小写
语法2:
	const 常量名称=;

常量特性

  1. 常量前面没有美元符号($)
  2. 常量只能用define() 函数定义,而不能通过赋值语句(const)
  3. 常量一旦定义就不能被重新定义或者取消定义
  4. 常量的值用来定义 整型,浮点,字符串,布尔值,数组(PHP7新增)
  5. 常量可以不用理会变量范围的可以在任何位置访问
  6. 常量也可以定义成为数组形式
<?php
	const PI = 3.14125;
	echo PI;
    define('NAME','张三');

	// defined检测常量是否已经定义
    if (defined('NAME')) {
   
        echo NAME.'<br>';
    }

	 // 常量也可以定义成为数组形式
    define('CITY',['北京','上海','杭州']);
    var_dump(CITY);

define 与 const区别

  1. 使用const关键字定义常量必须处于最顶端的作用区域,这就意味着不能在函数内
  2. define语法可以在分支结构中定义常量,const不允许的。
  3. define定义的常量可以自定义是否区分大小写。
<?php
    if (true) {
   
        # code...
        define('PI',3.1415);  // 正确语法
        const PI = 3.14125;  // 错误语法
    }

	define('PI', 3.1415);
    echo Pi.'<br>';   // 报错

    // 如果define的第三个参数设置为true, 则不区分大小写
    define('PI', 3.1415, true);

isset 和 empty 的区别

Isset 判断一个变量是否被定义,null 的三种情况(赋值为 null,未定义的变量,unset 掉的变量),则isset 返回假
empty 判断一个变量是否为空,null 的三种情况和 布尔false 的几种情况都为真,其他均为假

Isset() 检测变量是否设置
Empty() 检测变量是否是空
    
// empty检测一个变量是否为空 ,若空为true 不空为false
$a = "4";		/*即使输入零也不是空,显示为true*/	
var_dump(empty($a));

// isset检测变量是否设置
$b = "";
var_dump
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值