• PHP学习2——基本语法


    主要内容:

    1. 二进制
    2. 数据类型
    3. 变量
    4. 常量
    5. 赋值
    6. 语句结构
    7. 函数

    网站的核心功能是展现信息,文字,图片,视频,音频,对于计算机来说都是数据,这些数据按照二进制进行存储。

    二进制

    就是1100,0100,1010这样的数据就是二进制数,二进制数分为有符号数、无符号数。原码,反码,补码是有符号数才有的表示方法。

    对于正数:原码=反码=补码

    原码:0100,0100,1010
    反码:0100,0100,1010
    补码:0100,0100,1010
    

    对于负数:原码!=反码,反码+1=补码

    原码:1100,0100,1010
    反码:1011,1011,0101
    补码:1011,1011,0110
    

    数据类型

    整数(10112),浮点数(12.34),字符串("cat"/‘cat’)

    变量

    使用$符号申明变量,以英文字母或者_(下划线)开头,后面可是是英文字母,数字,下划线,比如$score,$mark,$name,$Password

    php预定义变量:

    • $GLOBALS(当前程序中全局变量)
    • $SERVER(全局变量,包含头信息,脚本位置的数组)
    • $_COOKIE(通过http的cookie方法提交到脚本的变量)

    $_SERVER常见的$_SERVER的元素包括:

    • PHP_SELF(当前正在执行的脚本的文件名)
    • SERVER_ADD(当前执行脚本所在服务器ip)
    • DOCUMENT_ROOT(当前脚本所在文档根目录)
    • SCRIPT_FILENAME(当前执行脚本绝对路径)

    demo2.php

    <?php
    	$a="this is test!";
    	echo "通过$GLOBALS来获取变量值:";
    	echo $GLOBALS['a']."<br/>";
    	
    	echo "当前执行脚本的文件名:";
    	echo $_SERVER['PHP_SELF']."<br/>";
    	
    	echo "当前执行脚本的跟目录:";
    	echo $_SERVER['DOCUMENT_ROOT']."<br/>";
    	
    	echo "当前执行脚本的绝对路径:";
    	echo $_SERVER['SCRIPT_FILENAME']."<br/>";
    	
    ?>

    启动xampp的控制面板,运行Apache,绿色说明是正常运行

    将文件拷贝的xampp的htdocs下

    打开浏览器输入:http://localhost/demo2.php

    常量

    const name=value;

    比如:const MONEY_RATE=0.5;

    常用预定义常量

    • __FILE__(放回当前文件名称,注意下划线是两个)
    • __LINE__(返回当前代码所在行号,注意下划线是两个)
    • __FUNCTION__(返回所在函数的名称,注意下划线是两个)
    • __CLASS__(返回所在的类名,注意下划线是两个)
    • PHP_OS(返回操作系统名称)
    • TRUE(布尔值,真)
    • FALSE(布尔值,假)
    • NULL(空值)

    demo3.php

    <?php	
    	echo "当前文件所在位置:".__FILE__."<br/>";
    	echo "当前操作系统是:".PHP_OS;
    	
    ?>
    

    赋值

    赋值最基本的运算

    demo4.php

    <?php
    	$a="this is test!";//申明变量,并赋值
    	
    	$b;
    	$b='this is test!';//先申明变量,后赋值
    	
    	$c=$a;//使用一个变量给另一个变量赋值
    	
    	ECHO $a."<br/>";
    	echo $b."<br/>";
    	echo $c."<br/>";
    	
    ?>
    

    输出:

    字符串单引号和双引号

    单引号的变量做字符串处理,双引号变量会解析出来

    demo5.php

    <?php
    	$a="this is test!";	
    	$b=10;
    	echo '$a'.'<br/>'.'$b'."<br/>";
    	echo "$a".'<br/>'."$b"."<br/>";
    
    ?>
    

    输出

     语句结构

    PHP语句通常是表达式组成,语句;(英文分号)结尾,不加会报错。

    条件构成

    关系运算:>(大于),<(小于),==(等于),===(全等于,包括类型),<>或!=(不等于),!==(非全等于,左右操作数数值或者类型不相等,返回真)

    逻辑运算

    • and/&&/&(逻辑与true&true==>true)
    • or/||/|(逻辑或false||false==>false)
    • not/!(逻辑非!true==>false)
    • xor/^(逻辑异或,true^false==>true ,false^true==>true,false^false==>false)

    逻辑与(&&)的短路原则:

    • exp1&&exp2,如果exp1为false,则exp2不执行,直接返回false

    分支结构

    • if语句
    • if-else语句
    • if-elseif-else语句
    • switch语句

    demo6.php

    <?php
    	$a=5;	
    	$b=10;
    	if($a>$b){
    		echo '$a大于$b';
    	}else{
    		echo '$a小于$b';
    	}
    
    ?>
    

    输出$a小于$b

    循环结构

    while语句

    do-while语句

    for语句

    demo7.php

    <?php
    	//for循环
    	for($i=0;$i<10;$i++){
    		echo 'good! ';
    	}
    
    ?>
    

    输出good! good! good! good! good! good! good! good! good! good!

    函数

    PHP的函数很好用,不用申明返回数据的类型(当然这是优点也是缺点,不过我认为还是优点,减少了代码量啊,有没有!而且还不用想破头到底应该返回什么类型数据,而且PHP的输出支持链式调用,太方便了啊!)

    函数把一个完整的功能多条语句封装成一个模块,函数使用function来申明

    demo8.php

    <?php
    	//输出n次变量a
    	function printString($a,$n){
    		//for循环
    		for($i=0;$i<$n;$i++){
    			echo "$a";
    		}
    	}
    	//调用函数
    	printString("good! ",5);
    	printString("<br/>",2);
    	printString("apple and pear! ",1);
    
    ?>
    

    输出

     这个时候的函数参数为值传递,就是一个copy,在函数内部改变这个值不会影响到外部的变量的值,但是如果我们想要在函数内部改变外部的值,需要引用传递,将参数的引用路径地址&a传入

    demo.9.php

    <?php
    	//交换$a,$b位置
    	function swap(&$a,&$b){
    		echo "交换前:".'$a='.$a.'$b='.$b;
    		echo '<br/>';
    		$temp=$a;
    		$a=$b;
    		$b=$temp;	
    		echo "交换后:".'$a='.$a.'$b='.$b;		
    	}
    	$a=5;
    	$b=9;
    	//调用
    	swap($a,$b)
    	
    
    ?>
    

    输出

    交换前:$a=5$b=9
    交换后:$a=9$b=5
    

    全局变量

    函数中不能直接使用全局变量,如果需要在函数中使用申明的全局变量,需要加前缀global

    <?php
    
    	$a=100;
    	//输出全局变量a
    	function gbl(){
    		global $a;
    		echo $a;	
    	}
    	//调用
    	gbl();
    ?>
    

    输出

    100
    

    静态变量

    函数外不能直接使用函数内部的变量,如果需要在函数外使用申明的函数中的变量,函数中变量需要加前缀static

    <?php
    	//输出静态变量a
    	function stc(){
    		static $a=0;
    		$a++;
    		echo $a.',';	
    	}
    	//调用
    	stc();
    	stc();
    	stc();
    	stc();
    	stc();
    ?>
    

    输出

    1,2,3,4,5,
    

    返回值

    PHP的函数不用声明返回值类型,真方便!

    <?php
    	//返回字符型
    	function reutrnString(){
    		return "today is sunday.";
    	}
    	//返回数字
    	function returnNum(){
    		return 1024;
    	}
    	//调用
    	$a=reutrnString();
    	echo "$a=$a"."<br/>";
    	$a=returnNum();
    	echo "$a=$a";
    	
    ?>
    

    输出

    $a=today is sunday.
    $a=1024

    函数引用返回

    需要在申明函数的时候,在函数前面在&(取地址符号)

    (这个有点变态,直接操作引用地址,用起来出错了怎么搞)

    <?php
    
    	//返回数字
    	function &returnNum(){
    		static $b=0;
    		$b=$b+1;
    		echo $b.'<br/>';
    		return $b;
    	}
    	//调用
    	$a=returnNum();
    	//使用&
    	$a=&returnNum();
    	$a=1000;
    	$a=returnNum();
    	
    ?>
    

    输出

    1
    2
    1001
    

    可变函数

    需要在调用函数的时候在前面加$(申明变量符号),调用同一个函数,但是却执行的是不一样的代码,

    这个技术太牛逼!要是可以在配置文件中对变量进行修改,那么就可以动态的决定要执行那个函数,根据需求动态的修改程序,牛!!!

    (这个更加变态,不说了,看代码)

    <?php
    	//返回字符型
    	function reutrnString(){
    		echo "today is sunday.<br/>";
    	}
    	//返回数字
    	function returnNum(){
    		echo 1024;
    	}
    	function hello(){
    		echo '你好';
    	}
    	//调用
    	$func='reutrnString';
    	$func();
    	$func='returnNum';
    	$func();
    	$func='hello';
    	$func();
    	
    ?>
    

    输出

    today is sunday.
    1024你好
    

     递归函数

    就是函数自己调用自己,没有什么好说的,在一些算法中为了简化可能会用到,但是递归调用的代码执行效率极低,不建议使用

    <?php
    	//递归
    	function add(){
    		static $a=0;
    		$a++;
    		echo '$a='.$a.",";
    		if($a>10){
    			return;
    		}
    		//调用自己,直到满足条件
    		add();
    	}
    	
    	add();
    
    	
    ?>
    

    输出

    $a=1,$a=2,$a=3,$a=4,$a=5,$a=6,$a=7,$a=8,$a=9,$a=10,$a=11,
    

    系统函数

    就是PHP将一些常用的函数封装好了,不用自己写了,看看API直接使用就行了。

    <?php
    	//返回最大值
    	$a=max(1,22,34,777,3,55);
    	echo "1,22,34,777,3,55中最大的数是:".$a;
    ?>
    

    输出

    1,22,34,777,3,55中最大的数是:777
    

      

  • 相关阅读:
    arcgis api 3.x for js 入门开发系列八聚合效果(附源码下载)
    arcgis api 3.x for js 入门开发系列七图层控制(附源码下载)
    arcgis api 3.x for js 入门开发系列六地图分屏对比(附源码下载)
    arcgis api 3.x for js 入门开发系列五地图态势标绘(附源码下载)
    arcgis api 3.x for js 入门开发系列四地图查询(附源码下载)
    Java里面获取当前服务器的IP地址
    Flutter at Google I/O 2018
    Modbus RTU 协议使用汇总
    plsql 创建表空间、用户、赋予权限
    Oracle:ODP.NET Managed 小试牛刀
  • 原文地址:https://www.cnblogs.com/1906859953Lucas/p/9426887.html
Copyright © 2020-2023  润新知