返回顶部

php基本语句

<?php
$mumu=1111;
$didi=2222;
$didi=&$mumu;
$mumu=8888;
echo $didi ;
?>
输出为8888,可以这样理解:木木电脑才在1111,弟弟的电脑存在2222,然后弟弟和木木共享文件夹(变成相同的值),木木值改变,输出的弟弟值也变。

变量以 $ 符号开始,后面跟着变量的名称
变量名必须以字母或者下划线字符开始
变量名只能包含字母数字字符以及下划线(A-z、0-9 和 _ )
变量名不能包含空格
变量名是区分大小写的($y 和 $Y 是两个不同的变量)
var_dump($a);输出变量a的字符类型,常用于测试。 

  一、变量

<?php
// echo "您剁手太严重,淘宝已经屏蔽您的访问";
// 注释 单行和多行 
/*
 多行注释 ,可以注释多行代码
 这一行也可以
 */
// 变量 
// 定义变量 必须用 $符开头
// 变量名:只能包含:字母、数字、下划线(_) 数组不能开头 变量名区分大小写
$name="张三";
$age=10;
$height=182.24;
$num=100;
$num1=101;
// 变量计算
$num2=$num+$num1;
echo $num2;
// 复制赋值
$new_name=$name;
echo "<br>";
echo $new_name;
$name="新张三";
echo "<br>";
echo $new_name;
echo "<br>";
echo $name;
echo "<br>";
// 引用赋值
$new_name2=&$name;
echo "new_name2:".$new_name2;
echo "<br>";
$name="改成李四了111111";
echo "new_name2:".$new_name2;
echo "<br>";
$new_name2="啊啊啊啊啊啊";
echo "name:".$name;
// 可变变量
echo "<br>";
$name="abc";
$abc="def";
$def="123456789";
// $test=$abc
$test=$$$name;
echo $test;
echo "<br>";
// var_dump 可输出更多类型的数据,可获得更多的信息
$bool=false;
echo $bool;
echo "<br>";
var_dump($bool);
echo "<br>";
// isset 变量存在返回true 不存在返回false
$names="123";
var_dump(isset($names));
var_dump(isset($names1));
$is_exists=isset($names);
var_dump($is_exists);
if($is_exists==true){
    echo "变量存在";
}else{
    echo "变量不存在";
}
// unset 删除变量 
unset($names);
var_dump(isset($names));
// var_dump($names)

echo "<pre>";
// 系统内置全局变量
var_dump($_SERVER);
var_dump($_COOKIE);
var_dump($_SESSION);
var_dump($_GET);
var_dump($_POST);
var_dump($_REQUEST);
//常量
// 一旦定义不可修改,只能定义一次;常量名和变量名使用一样的约束
//常量定义 使用define 关键词定义
define('name','王五');
// 常量使用时不需要使用$符
// 输出常量
echo name;
// 输出变量
echo $name;
// 常量名在定义时,约定俗成使用全大写,跟变量名进行有效的区分
define('NAME',"赵六");
echo NAME;
// 常量 一经定义不可修改;
// define('NAME','小红'); // 报错
// 检查常量是否存在 使用 defind 返回布尔值(true或者false)
var_dump(defined("NAME"));
var_dump(defined("NAME1"));


// PHP 数据类型
// 三大类 标量类型  复合类型  特殊类型 
// 标量类型(基础类型) 包含 数字(int) 浮点(float) 字符串(string) 布尔(bool:boolean)
$num=100;
var_dump($num);
$float_val=100.24;
var_dump($float_val);
// 字符串 单引号解析速度比双引号快;
$str="字符串$num";
$str1='字符串$num';
var_dump($str);
var_dump($str1);

// 复合类型 数组(array)、对象(object)
$arr=[1,3,4,5,6];
var_dump($arr);
$arr2=array(1,3,4,5,6);
var_dump($arr2);
$arr3[1]=100;
var_dump($arr3);
// 对象()
class People{
    public $name="123";
}
$peo=new People();
var_dump($peo);
// 特殊类型 NULL 资源(resource);
$test=NULL;
var_dump($test);
$fd=fopen('./abc.txt','r');
var_dump($fd);
?>

  二、类型转换与运算符

<?php
// 标量数据类型(基础类型)类型转换
// 隐式类型转换(自动类型转换)
$num=100;
$float_val=20.01;
// int类型先转换成 浮点类型
var_dump($num+$float_val);
// 浮点  int  bool
// bool 向int转换 true 转成1  false 转成 0
$bool=true;
$num2=10;
var_dump($bool+$num2);
$bool2=false;
var_dump($bool2+$num2);
// 字符串向 int 类型转换
// $str="101aaaaaa"; // 转成 101
// $str="aaaa100"; // 转成成0
$str="100.01aaaa";  // 转成 100.01
$num3=10;
var_dump($str+$num3);
$bool3=true; // 转成1
$str2="10abc"; // 转成 10
var_dump($bool3+$str2);
echo "<br>";
// 强制类型转换(显示类型转换)
$str="101abc";
var_dump(intval($str));
var_dump(floatval($str));
// 字符串转bool非空转为true 空转false
// 数字和浮点转bool 0转false 非0转成 true
var_dump(boolval($str));
$num4=100;
var_dump(boolval($num4));
echo "<br>";
// 数据类型检查
$bool4=true;
$str3="abcdef";
var_dump(is_bool($bool4));
var_dump(is_bool($str3));
// is_string  is_int  is_float is_array  is_object is_bool
echo "<br><hr>运算符<br>";
// 运算符 算数运算符 字符串运算符  比较运算符  逻辑运算符 赋值运算符
// 算数运算符  + - * / % ++ -- 
$num5=100;
$num6=50;
var_dump($num5+$num6);
var_dump($num5-$num6);
var_dump($num5*$num6);
var_dump($num5/$num6);
var_dump($num5%3); // 求余 取模 
var_dump($num5+$num6*2); // 先乘除后加减
var_dump(($num5+$num6)*2); // 使用()调整优先级
$num5++;
var_dump($num5);
$num5--;
var_dump($num5);
echo "<br><hr>字符串运算符<br>";
// 字符串运算符 使用 "." 拼接字符串
$name="小明";
$age=23;
echo "用户名:".$name." 年龄:".$age;
echo $name.$age;
echo "<br><hr>赋值运算符<br>";
// 赋值运算符
$name="张三";
var_dump($name);
// += -= *= /= %= 
$num=100; 
$num+=100;  // 可以看成 $num=$num+100;
var_dump($num);
$num-=50; // $num=$num-50
var_dump($num);
$num*=2;  // $num=$num*2;
var_dump($num);
$num/=3;    // $num=$num/3
var_dump($num);
$num%=3;    // $num=$num%3;
var_dump($num);
$str="张三";
$str.=" 年龄 23"; // $str=$str." 年龄 23";
var_dump($str);
echo "<br><hr>比较运算符<br>";
// 比较运算符 > < == >= <= != ===
$num=100;
$num1=200;
var_dump($num > $num1); // 返回 false
var_dump($num < $num1);
var_dump($num >= 100);
var_dump($num <=100);
var_dump($num == $num1 );
var_dump($num == 100);
$str="100aaa"; //  100 
var_dump($num == $str); // 返回 true
// 全等于
var_dump($num===$str); // 返回false 会比较数据类型
echo "<br><hr>三元运算符<br>";
// 三目运算(三元运算符)  语法结构: 表达式 ?  成立后时执行 : 不成立时执行
var_dump(100 > 2 ? "成立" : "不成立" );
var_dump(100 < 2 ? "成立" : "不成立" );
var_dump($num < $num1 ? "成立" : "不成立");
echo "<br><hr>逻辑运算符<br>";
// 逻辑运算符 与或非  and or !   链接多个表达式
// and 两端的表达式都成立 整个表达式才成立
var_dump( 1>2 and 3>1 ); // 不成立  返回 false
var_dump( 2>1 and 3>2 ); // 成立 返回true 
// or 两端的表达式 任意一个表达式成立 整个表达式成立
var_dump( 1>2 or 3>1 ); // 成立  返回 true
var_dump( 2>1 or 3>2 ); // 成立 返回true 
var_dump( 2<1 or 3<2 ); // 不成立 返回false
// 非 ! 取反
var_dump(!(1>2));
var_dump(!(2>1));
?>

  三、流程控制

<?php
/*****流程控制************/
// 顺序结构
echo "1";
echo "2";
echo "3";
// 分支结构
if ( 1 < 2 ) {
    # code...
    echo "表达式成立";
}
echo "<br>";
if ( 2 < 1 ) {
    # code...
    echo " 2 < 1 条件成立";
    echo "条件不成立 不执行";
}
echo "<br>";
// 双路分支
if ( 2>3 ) {
    // 表达式成立 执行的代码块
    echo "条件成立";
} else {
    // 条件不成立时 执行的代码块
    echo "条件不成立";
}
echo "<br>";
$age=17;

if($age>=18){
    echo "随便玩儿";
}else{
    echo "未成年,游戏时间不得大于2个小时";
}
echo "<br>";
// 多路分支
$age=35;
if ($age<18) { // 小于10
    echo "未成年,游戏时间不得大于2个小时";
}elseif($age <=30){ // 大于等于18 小于等于 30
    echo "随便玩";
}elseif($age <=50){ // 大于30 小于等于50
    echo "要不要氪点金!";
}else{  // 大于50
    echo "老爷子注意身体,早点休息!";
}
echo "分支结束!";


// 循环结构
// for  while  do while foreach
//$i=0 初始条件 只会执行一次
//$i<10 循环的条件,条件成立时循环才会执行;每次循环都会执行
// $i++ 自增 除第一次之外每次都执行
for ($i=0; $i < 10; $i++) { 
    // 循环体 每次循环要执行的代码
    echo $i."<br>";
    # code...
}
// 循环嵌套
// 循环结构 外层循环执行一次 内层循环执行一圈
// 当前循环会执行100次 循环最好不好超过两层 
for ($i=1; $i < 10; $i++) { 
    for ($j=1; $j <10 ; $j++) { 
        if($j<=$i){
            echo  $i."*".$j."=".$i*$j." ";
        }
    }
    echo "<br>";
}

$num=1;
// 先判断条件 条件成立 执行循环体
while ($num <= 10) {

    // break
    // continue
    // if($num==5){
    //     // 整个循环结束 break 后的代码不在执行
    //     break;
    // }
    $num++;
    if($num==5){
        // 跳出本次循环 continue 后的代码不在执行
        continue;
    }
    echo  $num;
}

// 先执行一遍循环体,在判断条件
// do while 不管条件是否成立,循环体至少执行一次;
$num=1;
do {
    # code...
    echo "do while的循环体";
    echo $num;
} while ($num > 10);
echo "<br>";
$arr=['a','b','c','d','e','f'];
foreach ($arr as $k => $v) {
    # code...
    // echo "元素的key:".$key."元素的value:".$value."<br>";
    echo "元素的key:".$k."元素的value:".$v."<br>";
}
?>

  四、函数

<?php
//声明函数
// 语法格式: function 函数名(参数.....){函数体 return 返回值}
// 参数和返回值可选。
// 函数在声明的时候不会被执行,在调用的位置执行
function func(){
    echo "我是func函数<br>";
}
echo "函数体外";
//调用函数 : 函数名()
//什么位置调用,在什么位置执行。
echo "调用函数前<br>";
func();
echo "调用函数后<br>";
echo "<br><hr>";
//形参:函数声明时的参数时形参
//实参:函数在调用时传递的参数是实参
//函数调用传入的参数是按顺序传递,传值的方式是复制传至
//函数在声明是定义了几个参数,在调用时就需要传入几个参数;
function func1($num,$num2){
    echo $num+$num2;
}
$num=100;
func1($num,200);
echo "<br><hr>返回值";
// 返回值
function func2($num,$num1){
    // 使用return 关键词返回相应的内容
    // if(false){
        return $num+$num1;
    // }
    //函数体内,执行return之后函数会立刻返回,之后的代码不会在执行
    echo "return 之后的代码";
    return 500;
}
//如果函数有返回值,需要使用变量接收。
$result=func2(100,200);
var_dump($result);
echo "<br><hr>参数默认值<br>";
// 默认参数 有默认值的参数,在调用时参数可以不传。
// 有默认值的参数放到参数列表的后边。
function func3($num,$num2=100){
    return $num+$num2;
}
$num=110;
$result=func3($num);
var_dump($result);
$result=func3($num,500);
var_dump($result);

// 变量的作用域
// 全局变量和局部变量 
// 全局变量:在函数体外声明的变量都是全局变量;
// 全局变量的作用域:在函数体外的任意部分
// 局部变量:在函数体内声明的变量是局部变量
// 局部变量的作用域:在当前函数的函数体内。
$name="张三"; //全局变量
function func4(){
    $realname="李四"; // 局部变量
    var_dump('函数内realname值:'.$realname);
    // var_dump($name);
}

function func5(){
    $num=100; // 局部变量
    // var_dump($name);
    // var_dump($realname);
    var_dump('num:'.$num);
}
function func6(){
    // 使用global关键词在函数体内引入全局变量
    global $name;
    var_dump('func6的name:'.$name);
    // 可以修改
    $name="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
    // 慎用global 频繁使用global容易造成变量污染。
}
func4();
func5();
func6();
var_dump('函数外:name'.$name);
// var_dump($realname) 
// 静态变量
// 使用static 修饰的静态变量
// 静态变量 只会被定义一次
function func7(){
    static $num=1;
    $num++;
    echo "<br>";
    var_dump($num);
}
func7();
func7();
func7();
func7();
func7();
// 
echo "<br><hr>变量函数<br>";
$func_name="func7";
// 变量函数:使用变量当函数名
$func_name(); // func7();
?>
===================================================================================================
变量字符串用双引号引起来代表完全转义,单引号代表输出变量原本样子。
例如:<?php
$i="acvb";
$mumu='abcdwr<p>$i</p>';
$didi="bcdwr<p>$i</p>";
echo $mumu;
echo $didi;
?>                    
输出的结果为
abcdwr
$i
bcdwr
acvb
php函数教程地址:http://www.w3school.com.cn/php/php_ref_string.asp
---------------------------------------------------------------------------------------------------------------------------------
常用函数:md5().
数据类型:1.字符串2.整型3.浮点型4.逻辑5.数组6.对象7.null
几个循环:上段第三个。
字符拼接:$a=123;echo $a.'456';    //输出123456

  4.1函数定义

其实说白了 函数就是一个半自动化机器人 就是一个存储代码的一个盒子。 你想使用他的时候就按一下开关。
<?php
function dong($b){
    $a=$b;echo $a.'456<br>';
}
dong(852);            //把b赋值为852
dong(864444444);
?>
输出为852456
864444444456。函数体内的变量可以进行任意的替换。

  4.2函数传参

function demo($name,$edu=‘tianjin’){    //函数体内叫形参
  echo 'hello'.$name.$edu;
}
demo('mumu','handan');        //传递实参进入函数体,如果形参已经定义,就把实参替换成形参。
输出为hellomumuhandan。
static 静态,这种值放在内存中每改变一次就会永久改变。
变量分为局部变量与外部变量,函数体内的变量不能在外部被执行。
global为全局变量。
<?php
$name='dong';
function demo(){//函数体内叫形参
global $name;
$name=124;
}
demo(); 
echo $name;
?>
输出为124。删除demo();输出就为dong。$GLOBALS['a1']

  4.3return

 <?php
function demo(){//函数体内叫形参
return 124;
}
$a=demo(); 
echo $a;
?>
输出值为124,因为返回值付给了变量a。
自己理解,return就是在函数体内返回一个值,然后在函数体外把这个值赋给变量。
<?php
function &demo(){
static $i=0;
$i++;
return $i;
}
$a=&demo(); //1
$a=100;
$a=demo();
echo $a; //101
?>输出结果为101,取址符&在函数前代表把返回值做成一个整体,与变量绑在一起后,变量变化就会带着return值变化。

  五、数组

<?php
$arr=array('dong','18','网络安全专家');//数组
$arr1[]='x';
echo $arr[2];
echo $arr1[0];
?>输出为网络安全专家x。
var_dump($arr);//array(3) { [0]=> string(4) "dong" [1]=> string(2) "18" [2]=> string(18) "网络安全专家" }

  5.1数组分类

 

<?php
$arr=array('dong','18','网络安全专家');//数组
for ($i = 0; $i < count($arr); $i++) {
    echo($arr[$i]).'<hr />'; // code...
}
?>输出为
dong
--------------------------------------------------------------------------------
18
--------------------------------------------------------------------------------
网络安全专家
此代码用于遍历数组。

  5.2关联数组的遍历

<?php
$arr=array('name'=>'dong','age'=>'18','profession'=>'网络安全专家');//数组
foreach ($arr as $key => $value){
    echo '键名'.$key.'值'.$value.'<br />';
}
?>
此代码输出为:
键名name值dong
键名age值18
键名profession值网络安全专家

  5.3二维数组(数组里面套数组)

<?php
$arr=array('name'=>'dong','age'=>'18','profession'=>array('网络安全','网络工程'));//数组
foreach ($arr as $key => $value){
   if (is_array($value) ){
      foreach ($value as $k1 => $v1)
      {
          echo '二维数组';
      }
    }else {
        echo '键名'.$key.'值'.$value.'<br />';
    }
}
?>
输出为
键名name值dong
键名age值18
二维数组二维数组

  六、时间戳

<?php
$arr=time();//时间戳
echo $arr.'<hr />';
echo date('Y-m-d H:i:s', $arr);//时间戳转成时间
?>
输出为
1591749201
--------------------------------------------------------------------------------
2020-06-10 08:33:21

  七、GET与POST请求

一般我们在浏览器输入一个网址访问网站都是GET请求;再FORM表单中,可以通过设置Method指定提交方式为GET或者POST提交方式,默认为GET提交方式。
<?php
var_dump($_GET);
?>//获取get值,在自己的浏览器配一个值就能输出,http://39.100.117.158/wan.php?name=dong。输出为array(1) { ["name"]=> string(4) "dong" }。
<?php
$l=$_GET['mumu'];
$m=fopen("./22.txt","w");
fwrite($m,$l);
?>把获取的参数值写进22.txt,在浏览器输入http://39.100.117.158/wan.php?mumu=dong就会把dong写入文件。

  八、三元运算符

$a=1?"2343":"300";//a=1,对的话输出2343,错的话输出300。
<?php
//empty//没值为真,有值为假
//isset//有值为真,没值为假
$a=isset($_GET['name'])?'1000':$_GET['name'];//判断是否存在,对的话输出1000,错的话输出get获取的值。
echo $a;
?>
http://39.100.117.158/wan.php?name=dong输出为dong,http://39.100.117.158/wan.php为空。
//empty    http://39.100.117.158/wan.php?name=dong输出为dong  ,http://39.100.117.158/wan.php为1000。
数字加引号变成字符型,不加就是整形int。

  

 

posted @ 2020-08-27 12:27  11阳光  阅读(316)  评论(0编辑  收藏  举报