zoukankan      html  css  js  c++  java
  • PHP 语法

    // PHP 教程 //
    // //
    //////////////////////////////////////

    一、PHP 简介
    PHP(全称:PHP:Hypertext Preprocessor,即"PHP:超文本预处理器")
    是一种创建动态交互性站点的强有力的服务器端脚本语言。

    	【特点】:
    		1. 免费开源
    		2. 使用广泛
    		3. 简单易学
    		4. 跨平台
    	【用途】:
    		常用于Web服务器开发中
    	【文件】:
    		.php 的后缀名
    		
    		1. 可包含在文本、html、Javascript、PHP中
    		2. 服务器上执行, 返回纯html 给浏览器
    	【PHP 功能】:
    		1. PHP 可以生成动态页面内容
    		2. PHP 可以操作(创建、打开、读取、写入、关闭)服务器上的文件
    		3. PHP 可以收集表单数据
    		4. PHP 可以发送和接收 cookies
    		5. PHP 可以添加、删除、修改您的数据库中的数据
    		6. PHP 可以限制用户访问您的网站上的一些页面
    		7. PHP 可以加密数据
    

    二、PHP 基本语法
    【基本语法】
    1. 基本语义结构:
    <?php
    // PHP 代码
    ?>
    1) PHP 脚本可以放在文档中的任何位置。
    2) PHP 脚本以 结束:
    2. PHP 中注释
    1) 单行注释
    // PHP单行注释掉的代码
    2) 多行注释(区块注释)
    /* 多行注释掉的代码 */
    【变量】
    1. PHP 变量规则:
    a. 变量以 $ 符号开始,后面跟着变量的名称
    b. 变量名必须以字母或者下划线字符开始
    c. 变量名只能包含字母数字字符以及下划线(A-z、0-9 和 _ )
    d. 变量名不能包含空格
    e. 变量名是区分大小写的($y 和 $Y 是两个不同的变量)
    2. 创建(声明)变量
    例:
    <?php
    $txt="Hello world!";
    $x=5;
    $y=10.5;
    ?>
    3. 作用域 (和C 语言差不多)
    a. local
    b. global
    c. static (静态变量,保留上次的值。仍然是局部变量)
    d. parameter

    			记:
    				1. 在新定义的一个函数内,在访问一个全局变量时,要在变量前面加上 global 关键字
    				2. 参数作用域,是在参数传参时,拷贝变量值
    	【数据类型】
    	
    		1. String(字符串)
    		2. Integer(整型)
    			整型可以用三种格式来指定:十进制, 十六进制( 以 0x 为前缀)或八进制(前缀为 0)
    		3. Float(浮点型)
    		4. Boolean(布尔型)
    			true 和 false
    		5. Array(数组)
    			例:
    			<?php 
    				$cars=array("Volvo","BMW","Toyota");
    				var_dump($cars);
    			?>
    		6. Object(对象)
    		7. NULL(空值)
    	【类型比较】
    		1. ==  
    			值比较
    		2. ===
    			完全比较
    		注:
    			== 和 === 都比较值的意思,但是后者还比较两者类型。
    	【数组】
    		1. 数值数组
    			//定义   $cars=array("Volvo","BMW","Toyota");
    			//访问   echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";
    		2. 关联数组
    			//定义   $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43"); 
    			//访问   echo "Peter is " . $age['Peter'] . " years old.";
    	【常量】
    		php可以利用define()定义常量
    		 
    		bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )
    		 该函数有三个参数:
    			name:必选参数,常量名称,即标志符。
    			value:必选参数,常量的值。
    			case_insensitive :可选参数,如果设置为 TRUE,该常量则大小写不敏感。默认是大小写敏感的。
    		
    		在访问常量时
    			1. 不需要用$符号
    			2. 是全局变量域
    	【超级全局变量】
    		PHP 超级全局变量列表:
    			$GLOBALS  是PHP的一个超级全局变量组,在一个PHP脚本的全部作用域中都可以访问。
    			$_SERVER  是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组
    			$_REQUEST 用于收集HTML表单提交的数据
    			$_POST    用于收集表单数据
    			$_GET     用于收集表单数据
    			$_FILES
    			$_ENV
    			$_COOKIE
    			$_SESSION
    	【魔术常量】
    	 PHP 向它运行的任何脚本提供了大量的预定义常量。
    		__LINE__  		文件中的当前行号。
    		__FILE__  		文件的完整路径和文件名
    		__DIR__ 		文件所在的目录
    		__FUNCTION__   	返回该函数被定义时的名字(区分大小写)
    		__CLASS__ 		返回该类被定义时的名字(区分大小写)
    		__TRAIT__ 		实现了代码复用的一个方法
    		__METHOD__		返回该方法被定义时的名字(区分大小写)
    		__NAMESPACE__ 	当前命名空间的名称
    		
    	【字符串变量】
    		字符串连接
    			用 . 将两个字符串连接起来
    	
    	【基本输出】
    		1. echo
    			可输出1个以上的字符串
    		2. print
    			只可输出1个字符串
    			
    		注:
    			1. echo 执行速度比print快,echo无返回值,print返回值为1
    			2. echo 和 print 在使用时都能 可加可不加 "()"
    			3. 在输出的时候可用 "{}" 包裹在内
    			
    	【运算符】
    		1. 和C语言 中基本一致。
    		2. 支持三元运算符
    		3. 组合比较符 <=>
    			$c = $a <=> $b;
    			解析如下:
    				1)如果 $a > $b, 则 $c 的值为 1。
    				2)如果 $a == $b, 则 $c 的值为 0。
    				3)如果 $a < $b, 则 $c 的值为 -1。
    

    三、PHP 控制结构
    【条件控制】
    1. if
    和 C语言用法一样
    2. switch
    和 C语言用法一样
    【循环控制】
    1. while循环
    2. for循环

    	【注】
    		while 和 for 循环均与 C语言用法一致
    	3. foreach循环
    		foreach ($array as $value)
    		{
    			要执行代码;
    		}
    

    四、PHP 区块化
    【函数】
    定义函数
    需要在函数名前面 加上function 关键字,其他细节和 C语言用法一致
    PHP 函数准则:
    1)函数的名称应该提示出它的功能
    2)函数名称以字母或下划线开头(不能以数字开头)
    【命名空间】
    1.声明
    namespace + 模块层次1/模块层次2/ ... 等依次类推
    2.使用
    use + 模块层次 as 别名 这样别名就可以访问该命名空间内定义的类

    五、面向对象
    【类】
    1.定义
    和C++ 定义方式差不多。
    2. 类中有$this指针变量
    3. 创建对象
    使用new 创建
    例:
    $runoob = new Site;
    4. 构造函数
    function __construct(参数表)
    {
    执行操作语句;
    }

    		例:
    			function __construct( $par1, $par2 ) {
    			   $this->url = $par1;
    			   $this->title = $par2;
    			}
    	5. 析构函数
    		function __destruct()
    		{
    			执行语句;
    		}
    	6. 继承
    		class 子类名  extends 父类名{
    		}
    	7. 访问控制符
    		可用访问控制符来对属性、方法进行控制 ,在其前加上访问控制符
    		public:
    		protected:
    		private:
    	8. 接口
    		interface
    		声明一个接口
    		<?php
    
    		// 声明一个'iTemplate'接口
    		interface iTemplate
    		{
    			public function setVariable($name, $var);
    			public function getHtml($template);
    		}
    
    
    		// 实现接口
    		class Template implements iTemplate
    		{
    			private $vars = array();
    		  
    			public function setVariable($name, $var)
    			{
    				$this->vars[$name] = $var;
    			}
    		  
    			public function getHtml($template)
    			{
    				foreach($this->vars as $name => $value) {
    					$template = str_replace('{' . $name . '}', $value, $template);
    				}
    		 
    				return $template;
    			}
    		}
    	9.抽象类
    		abstract class 类名
    		该类就不能实例化,定义为了抽象类
    		
    	10. 常量
    		利用 “const  + 变量名”  定义常量
    	11. static 关键字
    		1)声明类属性或方法为 static(静态),就可以不实例化类而直接访问。
    		2)静态属性不能通过一个类已实例化的对象来访问(但静态方法可以)。
    		3)由于静态方法不需要通过对象即可调用,所以伪变量 $this 在静态方法中不可用。
    		4)静态属性不可以由对象通过 -> 操作符来访问。
    	12. final 关键字
    		1)如果父类中的方法被声明为 final,则子类无法覆盖该方法。
    		2)如果一个类被声明为 final,则不能被继承。
    		<?php
    		class BaseClass {
    		   public function test() {
    			   echo "BaseClass::test() called" . PHP_EOL;
    		   }
    		   
    		   final public function moreTesting() {
    			   echo "BaseClass::moreTesting() called"  . PHP_EOL;
    		   }
    		}
    
    		class ChildClass extends BaseClass {
    		   public function moreTesting() {
    			   echo "ChildClass::moreTesting() called"  . PHP_EOL;
    		   }
    		}
    		// 报错信息 Fatal error: Cannot override final method BaseClass::moreTesting()
    		?>
    	13. 调用父类构造方法
    		1)PHP 不会在子类的构造方法中自动的调用父类的构造方法。
    		2)要执行父类的构造方法,需要在子类的构造方法中调用 parent::__construct() 。
    		
    		例:
    		<?php
    		class BaseClass {
    		   function __construct() {
    			   print "BaseClass 类中构造方法" . PHP_EOL;
    		   }
    		}
    		class SubClass extends BaseClass {
    		   function __construct() {
    			   parent::__construct();  // 子类构造方法不能自动调用父类的构造方法
    			   print "SubClass 类中构造方法" . PHP_EOL;
    		   }
    		}
    		class OtherSubClass extends BaseClass {
    			// 继承 BaseClass 的构造方法
    		}
    
    		// 调用 BaseClass 构造方法
    		$obj = new BaseClass();
    
    		// 调用 BaseClass、SubClass 构造方法
    		$obj = new SubClass();
    
    		// 调用 BaseClass 构造方法
    		$obj = new OtherSubClass();
    		?>
  • 相关阅读:
    pom配置进行版本号统一管理
    设置配置文件信息时的classpath
    [spring]启动时报错:NoSuchMethodError: javax.servlet.http.HttpServletResponse.getStatus()I
    powerdesigner使用之——从“概念模型”到“物理模型”
    Spring-MVC理解之二:前置控制器
    Spring-MVC理解之一:应用上下文webApplicationContext
    spring配置:context:property-placeholder 读取配置文件信息 在配置文件中使用el表达式填充值
    javaee web项目的目录结构
    22 Swap Nodes in Pairs
    21. Merge Two Sorted Lists
  • 原文地址:https://www.cnblogs.com/Kernel001/p/12505774.html
Copyright © 2011-2022 走看看