javascript是 点 语法,php 是箭头 语法。

PHP简介

什么是PHP:

  • PHP 是 “PHP Hypertext Preprocessor” 的首字母缩略词
  • PHP 是一种被广泛使用的开源脚本语言
  • PHP 脚本只能在服务器上执行
  • PHP 没有成本,可供免费下载和使用

什么是PHP文件:

  • PHP 文件能够包含文本、HTML、CSS 以及 PHP 代码
  • PHP 代码在服务器上执行,而结果以纯文本返回浏览器
  • PHP 文件的后缀是 “.php”

PHP能够做什么:

  • PHP 能够生成动态页面内容
  • PHP 能够创建、打开、读取、写入、删除以及关闭服务器上的文件
  • PHP 能够接收表单数据
  • PHP 能够发送并取回 cookies
  • PHP 能够添加、删除、修改数据库中的数据
  • PHP 能够限制用户访问网站中的某些页面
  • PHP 能够对数据进行加密

基础PHP语法

  • PHP 脚本以 <?php 开头,以 ?> 结尾
  • 在 PHP 中,所有用户定义的函数、类和关键词(例如 if、else、echo 等等)都对大小写不敏感,但是,所有变量都对大小写敏感。
  • PHP 中,每一句语法结束后都需要加 ;
<?php
	//header()响应头,服务端告诉客户端先要做什么
	header("content-type:text/html;charset=utf-8");
    echo "Hello World";
    //单行注释
    #单行注释
    /*
		多行注释
	*/
	$a=3;
	$A=5;//变量名区分大小写
	
	$arr=array("a"=>10,"b"=>20);//相当于js中的arr=["a":10,"b":20]
?>

变量

变量的定义

  • 变量以 $ 符号开头,其后是变量的名称
  • 变量名称必须以字母或下划线开头,不能以数字开头
  • 变量名称只能包含字母数字字符和下划线
  • 变量名称对大小写敏感($a 与 $A 是两个不同的变量)
<?php
	$a=10;
	$A=9;//变量名称区分大小写
	static $b=5;//静态变量,当函数执行完后,不对将其删除
?>

变量作用域

  • 函数内的变量是局部变量,函数外的变量是全局变量

函数外不能访问到局部变量

<?php
	function abc(){
        $a=10;//局部变量
        echo $a;//10
    }
    abc();
    echo $a;//报错
?>

全局变量也不能在函数内访问

<?php
	$a=20;//全局变量
	function abc(){
        echo $a;//报错
    }
    abc();
    echo $a;//20
?>

可以使用 $GLOBALS[ ] 在函数内部访问全局变量

<?php
	$a=15;//全局变量
	function abc(){
        echo $GLOBALS["a"];//15
    }
    abc();
    echo $a;//15
?>

global $ a,这样设置后$a从局部变量变为全局变量,则函数内部和全局中都可以访问到该变量
注意:要先 global 声明变量,再对变量进行赋值。

<?php
	$a=5;
	function abc(){
        global $a;
        $a=20;
        echo $a;//20
    }
    abc();
    echo $a;//20,变量被重新赋值了
?>
  • 通常,当函数完成/执行后,会删除所有变量,如果该变量定义为静态变量,函数运行后不清除,下次访问时不执行该定义行
function abc(){
     static $a=5;
     $a++;
     echo $a;
 }
 abc();//6
 abc();//7
 abc();//8

超全局变量

  • $GLOBALS,在函数内部访问全局变量
  • $_SERVER,这种超全局变量保存关于报头、路径和脚本位置的信息。
  • $_REQUEST,用于收集 HTML 表单提交的数据。
  • $_POST,用于收集提交 method=“post” 的 HTML 表单后的表单数据。
  • $_GET,用于收集提交 method=“get” 的 HTML 表单后的表单数据。
  • $_FILES,从客户计算机向远程服务器上传文件。
  • $_ENV,通过环境方式传递给当前脚本的变量的数组。例如当前计算机名称
  • $_COOKIE,变量用于取回 cookie 的值。
  • $_SESSION,存储和取回 session 变量。
<?php
	echo $_GET["color"];
    echo $_POST["color"];
    echo $_REQUEST["color"];
    //$_GET $_POST $_REQUEST 的值默认是数组类型
?>

魔术变量

  • _LINE_,返回当前代码在php中的行数,用于调试php脚本
  • _FILE_,返回当前文件的完整路径(绝对路径)
  • _FUNCTION_,返回当前函数的函数名
  • _CLASS_,返回当前的类名
<?php
    echo __LINE__;//打印出当前所在的行数
    
	function abc(){
        echo __FUNCTION__;//abc
    }
    abc();
?>

变量命名要避免的关键字

<?php
 and  or  xor  __FILE__ extends  __LINE__  array()  as 
  break  case  class  const  continue  declare  default 
   die()  do  echo  else  elseif  empty()  enddeclare 
    endfor  endforeach  endif  endswitch  endwhile  eval() 
     exit()  extends  for  foreach  function  global  if 
      include  include_once  isset()  list()  new  print 
       require  require_once  return  static  switch 
        unset()  use  var  while  __FUNCTION__  __CLASS__  
        __METHOD__
   final(PHP 5)  php_user_filter(PHP 5)  interface(PHP 5) 
    implements(PHP 5)  exception(PHP 5)  public(PHP 5) 
     private(PHP 5)  protected(PHP 5)  abstract(PHP 5) 
      clone(PHP 5)  try(PHP 5)  catch(PHP 5) 
       throw(PHP 5) this(PHP 5 only)
?>

echo 和 print

echo 和 echo() 相同,相当于 javascript 中的 document.write
echo 和 echo() 都可以打印多个内容

<?php
    echo "a","<br>","b";
    echo("a","<br>","b");

	//js访问php中的变量
 	$a=10;
    echo "<div></div>";
    echo "<script>
        console.log({$a});//10
    </script>";
?>
<?php
   $a=5;
   $b=6;
   $arr=array("a"=>10,"b"=>20);
   echo $a+$b;//11;
   echo $a.$b;//56;
   echo "这些数字是{$arr['b']}";//这些数字是20
   echo "这些数字是".$arr["b"];//这些数字是20
?>

print 或 print()相同
print 不能打印多个内容,print 打印成功的话,返回1,打印失败的话,返回0,而 echo 不返回值

<?php
    print "a";
    print("a");
    print "a","b";//会报错,print不能打印多个
    echo print "a";//a1
?>

print_r 只能打印数组

<?php
    $arr=array("a"=>10,"b"=>20);
    print_r($arr);//Array ( [a] => 10 [b] => 20 ) 
?>

var_dump 打印结果和变量类型

<?php
   $a=5;
   $b=6;
   $arr=array("a"=>10,"b"=>20);
   var_dump($a);//int(5)
   var_dump($arr);//array(2) { ["a"]=> int(10) ["b"]=> int(20) } 
?>

条件语句和循环

条件语句中,除了 elseif 之间没有空格外,其他都跟 javascript 一致。

<?php
	$a=10;
	if($a<10){
		//....
	}elseif($a==10){
		//....
	}else{
		//....
	} 
?>

循环语句中,声明变量、条件写法有些不同

<?php
	for($i=0;$i<100;$i++){
		//......
	}
?>

for 和 foreach

php中数组分为索引型数组和关联型数组。
索引型数组类似 javascript 中的数组结构,用 for 来遍历,数组的长度用 count( ) 来获取

<?php
	$arr=array(3,4,5,6,7);
	for($i=0;$i<count($arr);$i++){
		echo $arr[$i];//3 4 5 6 7
		echo "<br>";
	}
?>

关联型数组类似 javascript 中的对象结构,用 foreach 来遍历

<?php
	$obj=array("name"=>"xiaoming","age"=>18,"sex"=>"男");
	//可以同时遍历key和vlaue
	foreach($obj as $key=>$value){
		echo $key,"=",$value;//name=xiaoming age=18 sex=男
		echo "<br>";
	}

	//也可以只遍历value
	foreach($obj as $value){
		echo $value;//xiaoming 18 男
	}
?>

案例:用php打印出表格

<?php
    $arr=array(
        array("id"=>1001,"name"=>"鞋子","price"=>300,"num"=>1),
        array("id"=>1002,"name"=>"帽子","price"=>100,"num"=>2),
        array("id"=>1003,"name"=>"上衣","price"=>600,"num"=>4),
        array("id"=>1004,"name"=>"裤子","price"=>500,"num"=>1),
        array("id"=>1005,"name"=>"手套","price"=>50,"num"=>5)
    );
    echo "<table>";
    for($i=0;$i<count($arr);$i++){
        echo "<tr>";
        foreach($arr[$i] as $value){
            echo "<td>";
            echo $value;
            echo "</td>";
        }
        echo "</tr>";
    }
    echo "</table>";
?>

打印出效果如下:
echo php

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐