PHP基础语法

php基础

变量

变量是用于存储值的,通常状况下一个变量只能装一个值,能够将变量想象是一个瓶子,值就是瓶子里面的水javascript

  • 定义变量的方式:php中没有定义变量的关键字,可是在定义变量的时候变量名必须是$(美圆符)开头,如:
<?php

$name = "alex"; // 定义一个变量
echo $name //输出
?>
  • php变量命名规则:
    • 变量名必须以字母或者下划线"_"开头
    • 变量名只能➡由字母,数字,以及"_"组成,也能够包含汉字,可是不建议使用汉字做为变量名
    • 变量名不容许包含空格,变量名包含多个单词组成,可使用下划线法或者骆驼式命名法
    • 在php中变量名是明确区分大小写的
  • 变量的数据类型

在变量中,因为变量占用的空间单元不同,也分红几种数据类型,可使用"memory_get_usage"函数获取当前消耗的内存php

<?php
// 获取当前消耗的内存
$c1 = memory_get_usage();
$name = 'alex';
$c2 = memory_get_usage() - $c1;
echo '变量name所占用的内存空间:'.$c2
?>

php是一个弱类型语言,在定义时不须要声明变量的类型,php会自动吧变量转换成自动的数据类型java

<?php 
 $string = "就是就是";
 var_dump($string);  //使用var_dump查看变量的数据类型
 echo "<br />";
 $string = 9494; //自动将$string变量转换成int类型
 var_dump($string);
  echo "<br />";
?>

php标量类型:

字符串

  1. php中的字符串是用双引号括起来的一个词或者一个句子,好比"hello world",可使用php语言输出echo 将字符串输出
<?php
// 定义一个$name变量
$name = 'alex';
// 输出$name变量
echo $name
?>
  1. php链接字符串的方式

在php中使用 . 链接两个字符串,与python或者javascript中使用+链接字符串不同python

<?php
// 定义变量
$name = 'alex';
$age = '20岁';

// 使用 . 链接字符串输出
echo '名字:'.$name.'年龄:'.$age

// output: 名字:alex年龄:20岁
?>
  1. php语句结束符号:每一条php代码航结尾处都会有一个分号;结束,而且分号;必定在半角状态下输入,不然会报错
  2. php的注释是双斜杠://
  3. 当引号赶上美圆符号:
<?php
// 定义变量
$name = 'alex';
// 当引号赶上美圆符号
echo '名字:$name';  //输出的是$name
echo "名字:$name"   //字符串格式化输出

?>

// output:
    名字:$name
    名字:alex
  1. 多行字符串

在赋值符号后,输入界定福"<<<",接着就是标识符(代码中的EOF)mysql

//多行字符串
$content = <<<EOF
我有一只小毛驴,我历来也不骑。
有一天我心血来潮,骑着去赶集。
我手里拿着小皮鞭,我内心正得意。
不知怎么哗啦啦啦啦,我摔了一身泥.
EOF;
echo $content;
?>

bool类型

布尔类型(boolean):只有两个值,一个是TRUE另外一个是FALSE,bool不区分大小写,主要是用在条件结构sql

<?php
$man = '男';
$flag = $man == '男';
echo $flag;
var_dump($flag)

?>

整形

整形(integet):相似于常见的证书,能够用十进制,八进制,十六进制指定,十进制就是平常使用的水,八进制数字前必须加上"0",十六进制数字前必须加"0x"数据库

<?php
$data_int = 1234;   // 十进制数 
$data_int = -567;    // 一个负数
$data_int = 0123;    // 八进制数(等于十进制的 83)
$data_int = 0x1a;    // 十六进制数(等于十进制的 26)
?>

浮点型

浮点型(浮点数,双精度数或实数),也就是一般说的消暑,能够用小数点或者科学计数法表示,科学计数法可使用小写的e,也可使用大写的E数组

<?php
$num_float = 1.234;    //小数点  
$num_float = 1.2e3;    //科学计数法,小写e  
$num_float = 7.0E-10;     //科学计数法,大写E  
?>

php第一种特殊类型--资源

资源(resource):资源是由专门的函数来创建和使用的,例如打开文件、数据链接、图形画布。任何资源,在不须要的时候应该被及时释放。若是咱们忘记了释放资源,系统自动启用垃圾回收机制,在页面执行完毕后回收资源,以免内存被消耗殆尽服务器

例如:函数

<?php
$f = fopen('./content.txt','r'); //打开文件,第一个参数是文件名,第二个参数是打开类型
$conn = mysqli_connect('host','root','密码','数据库名');//数据库链接
$img = imagecreate(100,100)  //画布

?>

文件的简单操做:

<?php
$f = fopen('./content.txt','r'); //打开文件,第一个参数是文件名,第二个参数是打开类型
if ($f){ //判断f文件资源是否存在
    //接着采用while循环(后面语言结构语句中的循环结构会详细介绍)一行行地读取文件,而后输出每行的文字
    while (!feof($f)){  //判断是否到最后一行
        $line = fgets($f); // 输出一行文本
        echo $line;
    }
}
?>

空类型

NULL(空):NULL是空类型,对大小写不敏感,null类型只有一个取值,表示一个变量没有值,当被赋值为null或者还没有被赋值,或者被unset(),这三种状况下被认为为null

<?php 
 error_reporting(0); //禁止显示PHP警告提示
 $var;
 var_dump($var);
 $var1 = null;
 var_dump($var1);
 $var2 = NULL;
 var_dump( $var2);
 $var3 = "节日快乐!";
 unset($var3);
 var_dump($var3);
// 输出的都是null
?>

自定义常量

常量是不变的量,在常量被定义后,在脚本的任意位置都不能够被改变,PHP中的常量分为自定义常量和系统常量

PHP自定义常量是根据咱们开发的须要而定义的常量,可使用PHP中的函数define()定义

define()函数的语法:

bool define(string $constant_name, mixed $value[, $case_sensitive = true])


<!--第一个参数“constant_name”为必选参数,常量名称,即标志符,常量的命名规则与变量的一致,可是要注意哦,它可不带美圆符号哦。第二个参数“value”为必选参数,它是常量的值。第三个参数“case_sensitive”为可选参数,指定是否大小写敏感,设定为true表示不敏感,通常不指定第三个参数的状况下,默认第三个参数的值为false。-->

string表示参数类型为字符串类型,mixed表示参数类型能够接受为多种不一样的类型

例:

<?php
$p = "PII";
define('PI',3.14);
define($p,3.14);
echo PI;
echo "<br />";
echo PII;
?>

在使用常量的时候能够直接调用define()函数的第一个参数中的字符串调用,可是不能够进行更改.

PHP常量取值的第二种方式:constant(),使用这种方式更加的灵活

例1:

<?php
$name = 'alex';
define("NAME",$name);
echo NAME;

define("AGE",10);
echo AGE; // 第一种取值方式

echo constant("NAME")  //第二种取值方式
?>

例2:

<?php 
$p="";
//定义圆周率的两种取值
define("PI1",3.14);
define("PI2",3.142);
//定义值的精度
$height = "中";
//根据精度返回常量名,将常量变成了一个可变的常量
if($height == "中"){
    $p = "PI1";
}else if($height == "低"){
    $p = "PI2";
}
$r=1;
$area = constant($p)*$r*$r;
echo $area;
?>

使用defined(strinf constants_name)函数能够帮助咱们判断一个常量是否已经被定义,这个函数若是只有一个参数constant_name指的是要获取常量的名称,若存在则返回布尔类型true,不然返回false

<?php 
define("PI1",3.14);
$p = "PI1";
$is1 = defined($p);
$is2 = defined("PI2");
var_dump($is1);
var_dump($is2);
?>

系统常量

系统常量是php已经定义好的常量,能够直接拿来使用过,经常使用的系统常量:

  1. FILE :php程序文件名,能够帮助获取当前文件在服务器的物理位置
  2. LINE:PHP程序文件行数,可使用该常量获取当前代码在第几行
  3. PHP_VERSION:当前解析起的版本好
  4. PHP_OS:执行当前PHP版本的操做系统名称
<?php
echo __FILE__;
echo PHP_OS;
echo __LINE__;
echo PHP_VERSION;

?>

运算符

PHP运算符通常分为算数运算符,赋值运算符,比较运算符,三元运算符,逻辑运算符,字符串链接运算符,错误控制运算符

算数运算符

算数运算符只要是用于进行算数运算的,算术运算符与其余语言的运算符基本同样,不作笔记了

  1. 加法 ------ (+)
  2. 减法 ------ (-)
  3. 乘法 ------ (*)
  4. 除法 ------ (/)
  5. 取模 ------ (%)
<?php 
$english = 110; //英语成绩
$math= 118; //数学成绩
$biological = 80; //生物成绩
$physical = 90; //物理成绩
$sum = $english + $math + $biological + $physical;
$avg = $sum / 4;
$x = $math - $english;
$x2 = $english * $english;

echo "总分:".$sum."<br />";
echo "平均分:".$avg."<br />";
echo "数学比英语高的分数:".$x."<br />";
echo "英语成绩的平方:".$x2."<br />";

赋值运算

  1. "=" :吧右边表达式的值赋值给左边的运算符,它会将右边表达式的值复制一份,交给左边的运算符
  2. "&" :引用赋值,意味着两个变量都指向了同一个数据,将两个变量共享一块内存,若是这个内存存储的数据变了,那么两个变量的值都会发生变化

例:

<?php
$a = "alex";
$b = $a."大傻逼";
$c = &$a;
$a = "alex不是大傻逼";

echo $a; // alex不是大傻逼
echo $b; // alex大傻逼
echo $c;// alex不是大傻逼

?>

比较运算

比较运算符返回都是bool类型

比较运算符 名称
== 等于
=== 全等
!= 不等
<> 不等
!== 非全等
< 小于
> 大于
<= 小于等于
>= 大于等于

例:

<?php
    $a = 1;
    $b = "1";
    var_dump($a == $b);
    echo "<br />";
    var_dump($a === $b);
    echo "<br />";
    var_dump($a != $b);
    echo "<br />";
    var_dump($a <> $b);
    echo "<br />";
    var_dump($a !== $b);
    echo "<br />";
    var_dump($a < $b);
    echo "<br />";
    $c = 5;
    var_dump($a < $c);
    echo "<br />";
    var_dump($a > $c);
    echo "<br />";
    var_dump($a <= $c);
    echo "<br />";
    var_dump($a >= $c);
    echo "<br />";
    var_dump($a >= $b);
    echo "<br />";

?>

三元运算符

(?:)三元运算符也是一个比较运算符

$num = 60;
$b  = $num <= 60 ? "及格" : "不及格"; // 若是判断成功取?后面的不然取:后面的
echo $b

逻辑运算符

逻辑运算符朱勇是进行逻辑运算的,例如:逻辑与,逻辑或,逻辑异或,逻辑非等

例子 名称
$a and $b And(逻辑与)
$a or $b Or(逻辑或)
$a xor $b Xor(逻辑异或)
!$a Not(逻辑非)
$a && $b And(逻辑与)
$a || $b Or(逻辑或)
<?php 
    $a = TRUE; //A赞成
    $b = TRUE; //B赞成
    $c = FALSE; //C反对
    $d = FALSE; //D反对
    //咱顺便复习下三元运算符
    echo ($a and $b)?"经过":"不经过";
    echo "<br />";
    echo ($a or $c)?"经过":"不经过";
    echo "<br />";
    echo ($a xor $c xor $d)?"经过":"不经过";
    echo "<br />";
    echo !$c?"经过":"不经过";
    echo "<br />";
    echo $a && $d?"经过":"不经过";
    echo "<br />";
    echo $b || $c || $d ?"经过":"不经过";
    
?>

字符串链接符

PHP中有两个方式能够将字符串链接起来,第一种是(.),第二种是(.=)

<?php
$a = "alex";
$tip = $a.",欢迎您在慕课网学习PHP!";

$b = "东边日出西边雨";
$b .= ",道是无晴却有晴"; //$b = $b.",道是无晴却有晴";
$b .= $a; // $b = $b.$a

$c = "东边日出西边雨";
$c = $c.",道是无晴却有晴";
echo  $tip."<br />";
echo  $b."<br />";
echo  $c."<br />";
?>

错误控制运算符

PHP中提供了一个错误控制运算符"@",对于一些可能会在运行过程当中出错的表达式,能够将@防止在一个PHP表达式以前,该表达式可能产生的任何错误信息都会被忽略

<?php
$conn = @mysqli_connect("localhost","username","password");
echo "出错了,错误缘由是:".$php_errormsg;

?>

逻辑控制

if...else...

语法:

<?php
if(条件){
    // .....
}else{
    // .....
}
?>

例:

<?php
efault_timezone_set('Asia/ShangHai'); //设置时区
$today = date('m-d',time());  //获取当前日期
$brithday = '04-20';
$money = 238;
$discount = 0.8;

if ($today == $brithday){
    $sum = $money * $discount;
    echo "生日快乐,共消费:".$sum;
}else{
    echo "共消费:".$money;
}

?>

if ... else if ...

语法:

if (条件1){
    // ...
}else if(条件2){
    // ...
}else{
    // ...
}

例:

<?php
    $totalMoney = 0;//总工资
    $basicMoney =  2000;//基本工资
    $sex = "男";

    if($sex == "男"){    
        $totalMoney = $basicMoney  + 0;// 男的没奖金
    }else if($sex == "女")
        $totalMoney = $basicMoney  + 300;// 女的有奖金300元
    }
    echo $totalMoney;
?>

条件结构之switch ..case ...

语法:

<php?
switch(条件)
{
    case 条件值1:
        break
    case 条件值2:
        break
    default:
        //默认任务
}
?>

例:模拟抽奖

<?php

$num = rand(1,50);
switch ($num){
    case 1:
        echo "一等奖";
        break;
    case 2:
        echo "二等奖";
        break;
    default:
       echo "你抽中的是$num - "."很遗憾你没有中奖!";
}
?>

switch中break的做用是阻止代码进入下一个case中继续执行。

while循环语句

语法:

<php?
while(条件){
    // ...
}
?>

例:100之内能被2整除的数相加

<?php
$num = 1;
$sum = 0;
while ($num < 100){

   if ($num%2 === 0){
        $sum += $num;
   }
   $num +=1;
}
print $sum;
echo "循环结束";

do while循环语句

语法:

<php?
do{
    //执行任务
}while(条件)

?>

首先执行任务,执行任务完毕,判断某个条件是否符合(条件返回值是否为TRUE),若符合则再次执行任务,执行完毕任务,继续断定条件。

例:

<?php

$i = 0;

do{
    $i ++;
    echo "这是第($i)圈";
}while($i < 5);

while与do...whild语句的区别:while在判断条件的时候,若是条件为false,一次也不会执行,do...while会执行一个do结构体中的语句,再进行判断是否须要继续执行下去

<?php
    //A例子
    $num = 2;
    $sum  = 10; 
    while($num<3){
        $sum = $sum  + 10;
    }
    echo "A例子的结果:".$sum."<br />";
    //B例子
    $num = 2;
    $sum  = 10;         
    do{
        $sum = $sum  + 10;
    }while($num<3);
    echo "B例子的结果:".$sum."<br />";
?>

例2:

<?php
/**
 * Created by PhpStorm.
 * User: wualin
 * Date: 2019-04-20
 * Time: 21:09
 */
//例如开发一个掷骰子大富豪游戏,若是掷到6能够再掷一次,若是不是留则跳出可使用do_while来实现

// 使用while实现
$sum = 0;
$num = rand(1,6);
$sum = $sum+$num;
while ($num == 6){
    $num = rand(1,6);
    $sum = $sum+$num;
}
echo "while例子执行完毕,前进:$sum";

//使用do...while实现
$sum = 0;
do {
    $num = rand(5, 6);
    $sum += $num;

}while($num == 6);
echo "do...while例子执行完毕,前进:$sum";

for循环

语法:

<?php
for(初始化;循环条件;递增项){
    // ...
}
?>

例:求100之内能被2整除的数

<?php
$sum = 0;
for ($num=0;$num<100;$num++){
    if ($num %2 === 0){
        $sum += $num;
    }
}
echo $sum;

foreach循环

在php中的foreach循环语句,经常使用于遍历数组

语法:

<?php
foreach(数组 as 值){
    // ...
}

foreach(数组 as 下标(索引) => 值){
    // ...
}
?>

例:遍历数组

<?php
$students = array(
'2010'=>'令狐冲',
'2011'=>'林平之',
'2012'=>'曲洋',
'2013'=>'任盈盈',
'2014'=>'向问天',
'2015'=>'任我行',
'2016'=>'冲虚',
'2017'=>'方正',
'2018'=>'岳不群',
'2019'=>'宁中则',
);//10个学生的学号和姓名,用数组存储

//使用循环结构遍历数组,获取学号和姓名  
foreach($students as  $v)
{ 
    echo $v;//输出(打印)姓名
    echo "<br />";
}
?>

使用foreach遍历二维数组

<?php
 $students = array(
'2010'=>array('令狐冲',"59"),
'2011'=>array('林平之',"44"),
'2012'=>array('曲洋',"89"),
'2013'=>array('任盈盈',"92"),
'2014'=>array('向问天',"93"),
'2015'=>array('任我行',"87"),
'2016'=>array('冲虚',"58"),
'2017'=>array('方正',"74"),
'2018'=>array('岳不群',"91"),
'2019'=>array('宁中则',"90"),
);//10个学生的学号、姓名、分数,用数组存储
 
foreach($students as $key => $val)
{ //使用循环结构遍历数组,获取学号 
     echo $key; //输出学号
     echo ":";
     //循环输出姓名和分数
     foreach($val as $v)
    {
        echo $v; 
     }
     echo "<br />";
}
?>
相关文章
相关标签/搜索