PHP学习笔记①

php语法

<?php
//php代码
?>

php文件通常包含HTML标签和一些PHP脚本代码
注释

<!DOCTYPE html>
<html>
<body>
<?php
//单行注释
/*
多行注释
*/
?>
</body>
</html>

php变量

<!DOCTYPE html>
<html>
<body>
<?php
$x=5;
$y=6;
$z=$x+$y;
echo $z;
?>
</body>
</html>

php变量规则

  • 变量以$符号开始,后面跟着变量的名称
  • 变量名必须以字母或者下划线字符开始
  • 变量只能包含字母、数字以及下划线
  • 变量名不能包含空格
  • 变量名是区分大小写的

php是一门弱比较型语言,不用声明变量类型的命令

<?php
$txt="scs";
$x=1;
?>

变量作用域

PHP有四种不同的变量作用域

  • local
  • global
  • static
  • parameter(参数)

在PHP函数内部声明的变量是局部变量,仅能在函数内部访问;
在所有函数外部定义的变量,是全局变量,变量在可以在函数外脚本中的任何地方访问,在函数内访问需要用global 关键字。注:在函数内如不用glabla关键字不能访问全局变量

<?php
$x=5;
$y=10;
$z=4;
function myTest()
{
    global $x,$y;
    $y=$x+$y;
    echo $z //无输出
}
 
myTest();
echo $y; // 输出 15
?>

PHP将所有全局变量存储在一个名为$GLOBALS[index]的数组中,index为变量名称,可以访问更新

<?php
$x=5;
$y=10;
 
function myTest()
{
    $GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
} 
 
myTest();
echo $y; //15
?>

static可以让函数运行后局部变量不被删除

<?php
function myTest()
{
    static $x=0;
    echo $x;
    $x++;
    echo PHP_EOL;    // 换行符
}
 
myTest(); //0
myTest(); //1
myTest(); //2
?>

echo和print语句

echo和print是PHP中两个基本的输出
echo和print的区别

  • echo:可以输出一个或多个字符串,没有返回值,输出速度更快
  • print:只允许输出一个字符串,返回值总为1

echo和print都可以用括号,也可以不用echo(),print(),字符串可以包含HTML标签

<?php
echo "<h2>PHP 很有趣!</h2>";
echo "我要学 PHP!<br>";
echo "这是一个", "字符串,", "使用了", "多个", "参数。";//除此句,print格式一样
$txt1="学习 PHP";
$txt2="RUNOOB.COM";
$cars=array("Volvo","BMW","Toyota");
 
echo $txt1;
echo "<br>";
echo "在 $txt2 学习 PHP ";
echo "<br>";
echo "我车的品牌是 {$cars[0]}";
?>

PHP EOF

PHP EOF(heredoc)是一种在命令行shell(如sh、csh、ksh、bash、PowerShell和zsh)和程序语言(像Perl、PHP、Python和Ruby)里定义一个字符串的方法。

使用概述

  • EOF 可以用任意其它字符代替,只需保证结束标识与开始标识一致。
  • 结束标识必须后接分号,且顶格独自占一行(即必须从行首开始,前后不能衔接任何空白和字符)。
  • 位于开始标记和结束标记之间的变量可以被正常解析,但是函数则不可以。在 heredoc 中,变量不需要用连接符 .,来拼接

  • 开始标识可以不带引号或带单双引号,不带引号与带双引号效果一致,解释内嵌的变量和转义符号,带单引号则不解释内嵌的变量和转义符号。
  • . 当内容需要内嵌引号(单引号或双引号)时,不需要加转义符,本身对单双引号转义,此处相当与q和qq的用法。
<?php

echo <<<EOF
        <h1>我的第一个标题</h1>
        <p>我的第一个段落。</p>
EOF;
// 结束需要独立一行且前后不能空格

$name="runoob";
$a= <<<EOF
        "abc"$name
        "123"
EOF;
// 结束需要独立一行且前后不能空格
echo $a;
?>

数据类型

  • String(字符串)
  • Integer(整型)//十进制,十六进制( 以 0x 为前缀或八进(前缀为 0)
  • Float(浮点型)
  • Boolean(布尔型)
  • Array(数组)
  • Object(对象)
  • NULL(空值)
  • Resource(资源类型)

var_dump() 函数返回变量的数据类型和值

数组

<?php 
$cars=array("Volvo","BMW","Toyota");
var_dump($cars); //返回变量的数据类型和值
?>
/*
array(3) { [0]=> string(5) "Volvo" [1]=> string(3) "BMW" [2]=> string(6) "Toyota" }
*/

对象

对象数据类型也可以用于存储数据。
首先,你必须使用class关键字声明类对象。类是可以包含属性和方法的结构。

<!DOCTYPE html>
<html>
<body>

<?php
class Car
{
    var $color;
    function __construct($color="green") {
      $this->color = $color;
    }
    function what_color() {
      return $this->color;
    }
}

function print_vars($obj) {
   foreach (get_object_vars($obj) as $prop => $val) {
     echo "\t$prop = $val\n";
   }
}

// 实例一个对象
$herbie = new Car("white");

// 显示 herbie 属性
echo "\therbie: Properties\n";
print_vars($herbie);

?>  

</body>
</html>

//运行结果:herbie: Properties color = white

资源类型

PHP 资源 resource 是一种特殊变量,保存了到外部资源的一个引用。常见资源数据类型有打开文件、数据库连接、图形画布区域等。
使用 get_resource_type() 函数可以返回资源(resource)类型:

<?php
$c = mysql_connect();
echo get_resource_type($c)."\n";
// 打印:mysql link

$fp = fopen("foo","w");
echo get_resource_type($fp)."\n";
// 打印:file

$doc = new_xmldoc("1.0");
echo get_resource_type($doc->doc)."\n";
// 打印:domxml document
?>

PHP常量

PHP 中的常量是指一旦定义后其值不能被改变的标识符。常量可以用 define() 函数或 const 关键字来定义。
特点

  • 不变性: 常量一旦定义,其值不能改变。
  • 全局作用域: 常量在定义后,可以在整个脚本的任何地方使用,无需使用 global 关键字。
  • 数据类型: 常量的值可以是标量数据类型(如布尔值、整数、浮点数、字符串)或数组(PHP 7 及以上版本)。
  • 区分大小写: 常量名称默认是区分大小写的。如果需要定义大小写不敏感的常量,可以在 define() 函数的第三个参数设置为 true。

define

define()函数语法

bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )

不区分大小写的常量

<?php
// 不区分大小写的常量名
define("GREETING", "欢迎访问 Runoob.com", true);
echo greeting;  // 输出 "欢迎访问 Runoob.com"
?>

const

const函数语法

const CONSTANT_NAME = "value";

示例

const SITE_URL = "https://www.runoob.com";
echo SITE_URL; // 输出 "https://www.runoob.com"

预定义常量

PHP 提供了一些预定义常量,可以在脚本中直接使用。这些常量通常用于获取 PHP 的配置信息、版本信息等。常见的预定义常量有:

  • PHP_VERSION:当前 PHP 解析器的版本。
  • PHP_OS:服务器的操作系统。
  • PHP_INT_MAX:最大的整数值。
  • E_ERROR、E_WARNING、E_PARSE 等:错误报告级别。

常量数组

常量也可以是数组

define("FRUITS", [
    "Apple",
    "Banana",
    "Orange"
]);

echo FRUITS[0]; // 输出 "Apple"

运算符

运算符名称描述示例结果
a.b并置连接两个字符串“Hi”.“Ha”HiHa
x==y等于值相等则返回true5==“5”true
x===y绝对等于值和类型都相等返回true5===“5”flase
x<>y不等于不等于返回true5<>8true
x!==y不绝对等于值或类型不相同返回true5!==“5”true

逻辑运算符

与: and、&&
或:or、||
异或:xor
非:!

数组运算符

运算符名称描述
x + y集合x 和 y 的集合
x == y相等如果 x 和 y 具有相同的键/值对,则返回 true
x === y恒等如果 x 和 y 具有相同的键/值对,且顺序相同类型相同,则返回 true
x != y不相等如果 x 不等于 y,则返回 true
x <> y不相等如果 x 不等于 y,则返回 true
x !== y不恒等如果 x 不等于 y,则返回 true

三元运算符

? :

(expr1) ? (expr2) : (expr3) 

对 expr1 求值为 TRUE 时的值为 expr2;
在 expr1 求值为 FALSE 时的值为 expr3

自 PHP 5.3 起,可以省略三元运算符中间那部分。表达式 expr1 ?: expr3 在 expr1 求值为 TRUE 时返回 expr1,否则返回 expr3。

isset()函数检查变量是否设置

<?php
// 普通写法
$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';
echo $username, PHP_EOL;
 
// PHP 5.3+ 版本写法
$username = $_GET['user'] ?: 'nobody';
echo $username, PHP_EOL;
// 如果 $_GET['user'] 不存在返回 'nobody',否则返回 $_GET['user'] 的值
$username = $_GET['user'] ?? 'nobody';
?>

组合比较符

PHP7+ 支持组合比较符,也称之为太空船操作符,符号为 <=>

$c = $a <=> $b;
  • 如果 $a > $b, 则 $c 的值为 1。
  • 如果 $a == $b, 则 $c 的值为 0。
  • 如果 $a < $b, 则 $c 的值为 -1。
  • 14
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值