zoukankan      html  css  js  c++  java
  • 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
    

      

  • 相关阅读:
    jsp页面跳转的路径问题
    Hibernate简单的保存操作
    Hibernate中如何完成持久化类和数据库映射文件
    spring中IOC的简单使用
    对称的二叉树 --剑指offer
    二叉树的下一个结点 --剑指offer
    删除链表中重复的结点 --剑指offer
    链表中环的入口结点 --剑指offer
    字符流中第一个不重复的字符 --剑指offer
    表示数值的字符串 --剑指offer
  • 原文地址:https://www.cnblogs.com/1906859953Lucas/p/9426887.html
Copyright © 2011-2022 走看看