昆仑山:眼中无形心中有穴之穴人合一

夫君子之行,静以修身,俭以养德;非澹泊无以明志,非宁静无以致远。夫学须静也,才须学也;非学无以广才,非志无以成学。怠慢则不能励精,险躁则不能冶性。年与时驰,意与岁去,遂成枯落,多不接世。悲守穷庐,将复何及!

 

php 入门到入职

php官网

http://www.php.net/

标准标示符
语法:<?php code;?>
这个就是标准的标示符,如果这里只有PHP代码,后面的结束符号可以省略


case:
    <?php
        phpinfo();
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
短标签风格
语法:<?Code;?>
说明:这种风格的方法是默认不开启的,需要在php.ini中开启次功能,所以不推荐使用。
把short_open_tag=Off 改为short_open_tag=ON

PHP分割指令--分号

说明:在PHP语言中语句分为两大类,一种是控制型语句,这种语句只是定义当前代码是如何运行的方式,如:流程控制语句、定义函数、定义类等,所以这种控制语句是不写分号结束的;另一种就是功能语句,如:变量声明、输出、调用函数、声明定象等,只要是功能语句必须使用分号结束(;).
case :
    <?php
    echo "hello";
    
    $var=100;

PHP 程序注释

说明:注释是可以对当前文件或者当前某些代码进行说明的方式,也可以在调试代码时使用,把某些代码直接注释掉而不是删除。

注释分为两类:单行注释和多行注释

case:
    <?php
    /*echo "hello";*/  //这里就是多行注释,用于对函数或类的说明
    #$var1=200;单行注释,用于对当前文件的说明
    //$var=100;  //双左斜杠是单行注释,用于对下面的语句或写到语句后面

HTML和PHP的混合编程

说明:php的代码是不能写入到HTML中的,需要用PHP的标示符隔开,PHP代码只能在PHP文件中执行,不能写到其他语言文件中,html代码可以写到PHP文件中,直接写入到PHP文件中的方式不再推荐使用,可以使用引入的方式把html文件引入php文件中来执行。

case:
    <?php
    $title="welcome to china";
    ?>
<DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title><?php echo $title;?></title>
    </head>
    <body>
        <p>there is no choice but to grow</p>
    </body>

    </html>
</DOCTYPE>


变量

说明:
1.可以存储变化的量(数据)的空间,可以变化的量是通过上下文来绝定,I所以称为“弱类型语言”。
2.变量的声明是有“$”来进行定义的声明的,在内存需要定义变量并赋值。
        语法:$变量名=量;


可变变量
说明:可以把某个变量的追当成另一个变量的名来使用,这个时候的好处是减少变量的定义,节省内存空间。
case :
    <?php
//可变变量
$name='hello';
$$name='world';//
$name的值he11o,在它的前面在加s返回,就会找和ame里值当成变量名
$$$name=‘你好!’;
echo $hello;
echo'<br>';//换行
echo $name.${$name}.${${$name}};

变量的传值方式

值传递
说明:把一个变量的值“复制”一份,然后在赋值给另一个变量,这个时候的商个变量是没有任何关系的。
case:
   <?php
//值传递
$name='张三';
$zs=$name;
echo $name,$zs;
echo'<br>';
$name='李四’;//变量的重新赋值,用现在的值覆盖原来的值
echo $name,$zs;

引用传递
说明:把一个变量的值的空间地址给另一个变量,这个时候的两个变量公用一个数据空间,指向同一个地址,这个的两个变量值有关系的
case:
//引用传递
$age=18;
$zsage=&$age;//用&符号取得$age变量的数据地址,&叫取址符号
echo $age,$zsage;
echo'<br>';
$age=20;//引用传递方式如果是修改某个变量,那么都会改变。
echo $age,$zsage;
echo'<br>';
//删除其中一个 后另一个不受影响
unset($age);
echo $age,$zsage;

变量的范围

说明:在PHP中变量分为三种访问的方式(范围),局部变量、全局变量、静态变量全局变量
全局变量
说明:在函数外定义的变量的就称为“全局变量”,正常情况只能在函数外使用
//全局变量
$name='admin';//
全局变量,不能在函数内部使用,原因是存储位置不一样。
function user(){
echo $name;//不能使用全局变量
user();

局部变量
说明:在函数内定义的变量就称为“局部变量”,正常情况只能在函数内部使用。

case :
<?php
//变量的作用域
//全局变量
$name1='admin1';//
全局变量,不能在函数内部使用,原因是存储位置不一样。
I
//局部变量
function user(){
//echo $name;//不能使用全局变量
$name2='admin2';//局部变量不能在外部使用
echo $name2;
user();
echo $name2;
?>

静态变量
说明:正常情况下变量是在运行完当前页面后进行销毁的(PHP自己的特性),如果不想销毁可以使用静态变量

case :
//静态变量
static $age=18;//在全局是不起作用的。|
$age++;
echo $age;
$age=18;
$age++;
echo $age;
function agel(){
static $age=18;//static就是静态变量的声明方式,静态变量声明后运行完当前页面不再销毁这个变量,而是保留。
echo $age;
$age++;
}
age1();I 
age1();
agel();
age1();
age1();



全局转局部或局部转全局
说明:局部变量可以在函数内声明为全局变量,这个时候局部就可以在函数外使用,声明方式:$GLOBALS
和global
case:
    //局部转全局
//global$sex;这种方式不行
//global $sex=‘男’;//这种方式不行
$sex='男’;
function admin(){
global $name,$sex;//声明为全局变量
$name =平'admin';
echo $sex;
admin();
echo $name;

变量常用的5个函数

isset():检测变量是否存在
<?php
//isset():检测变量是否存在
$name='admin';
$res=isset($name,$age);var dump($res);//为假
//目的是防止用户直接访问当前页面,如果直接访问会查不到username下标,结果会报错
$userName=isset($_GET【'usernmae'】)?$_GET【'username'】:'";if(isset($name,$age)){
echo'存在';
}else{
echo‘不存在’;
}


unset():删除或销毁变量
注意:unset不止可以删除变量,还可以删除数组中的某个元素
case:
    unset($name);//unset不止可以删除变量,还可以删除数组中的某个元素
echo $name;
if(isset($name)){
echo'存在’;
}else{
echo'不存在’;

empty():判断变量是否为空
case:
    $name=1;
if(empty($name)){
echo'为空;
}else{
echo‘不为空;


echo:输出打印值,不能输出复合和特殊的数据类型的值
case:
    $name='admin';
if(empty($name)){
echo'为空’;
}else{
echo‘不为空’;
$age=18;
echo $name,$age;

var_dump():输出打印值、类型、长度,打印复合或特殊类型的值


预定义变量

说明:就是PHP系统内置的提供给使用的变量,这个变量一般都是超全局变量,超全局的说明就是没有作用域的限制有的还可以跨页面。

超全局变量:
$GLOBALS
    说明:globals是PHP内置的可以自动获取当前页面中的所有变量的内容。
    case:
        <?php
//报告所有错误
error_reporting(E_ALL);
$name='admin';
var_dump($GLOBALS);
echo "<br/>";
var_dump($name);

?>

$_SERVER
说明:server会自动获取服务器和客户端的信息
        case:
        <?php
//报告所有错误
error_reporting(E_ALL);
#var_dump($_SERVER);
#echo $_SERVER['HTTP_CONNECTION'];
echo '<table border="5">';
foreach ($_SERVER as $key=>$value){
    echo '<tr>';
        echo '<td>'.$key.'</td><td>'.$value.'</td>';
    echo '</tr>';
}
echo '</table>';
?>

$GET
$POST
$_FILES
    说明:获取上传文件的信息
    case:
    <?php
//报告所有错误
error_reporting(E_ALL);
var_dump($_FILES)

/$_FILES获取文件的信息
var_dump($_FILES【'updata'】);move_uploaded_file($_FILES【'updata'】【'tmp_name】,'
D:\tnwamp\tmp\xxx.jpg');

?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>upload</title>
</head>
<body>
    <form action="" method="post" enctype="multipart/form-data">
        <input type="file" name="update">
        <input type="submit" value="upload">
    </form>

</body>
</html>
    
$_COOKIE
$ SESSION
$REQUEST
$ENV


函数

函数介绍

说明:函数的作用在于对一个功能的封装,封装后在别的页面中引入并调用,可以节省代码量,可以冗余。

函数定义

function 函数名(【形参1】【参数2】【形参n..…){
要封装到函数的代码;
【return 返回值】;
}


case:
//1.函数的定义
function getSum($num1,$num2){
$res=$num1+$num2;//要封装函数的代码;
echo $res;//要封装函数的代码;
return $res;//返回值
    

函数调用

说明:直接使用需要调用的函数的名就可以了。
函数名(【实参1】【,实参2】【实参n..……);
case:
<?php
//报告所有错误
error_reporting(E_ALL);
function getSum($num1,$num2){
    $result=$num1+$num2;
    echo $result;
    return $result;
}

getSum(3,4);


函数相关细节

1.函数定义时的形参,不是一个具体的数值,而是需要接收“实参”的工具而已,形参必须是变量。
2.形参可以给默认值,且可以是多种类型的数据
3.实参就是要给函数传递数据用的工具,可以是具体的值,可以是变量,实参必须和形参“一一对应”;
4.函数名遵循变量的定义规则:字母、数字、下划线且不能以数字开头.
5.函数名不能重复;
6.return返回值,如果写了就会返回当前要返回的值,如果没写其实默认返回一个1;
7.return如何返回多个值;
    case:
    function getVal($num1,$num2){
    $res1=$num1+$num2;
    $res2=$num1-$num2;
    return $arr=array($res1,$res2);
    $res=getVal(1,2);
    vag_dump($res);
8.返回值必须使用一个变量到函数的调用者这个位置进行接收。
     case:
     $res=getVal(1,2);
    vag_dump($res);
9.如果传递多个值-数组

10.函数的变量称为“局部变量”,不能在数外使用。

函数的调用机制

1.函数的调用者把实际的数据传递给函数的形参,这个时候的形参只能在函数内使用。
2.函数在运行代码时会新建一个新空间来运行函数内的代码
3.运行代码后,如果有返回值,把结果返回给函数的调用者,这个时候运行函数的这个新的空间销毁

php 自动加载技术

<?php
class A {
public function eat(){
	echo 'I love you';
}

}

<?php
/*	
//php 自动加载方法1
function __autoload($className)
{	
	var_dump($className);
	$path='./'.$className.'.php';
	if(!file_exists($path)){
		throw new Exception('file not found');
	}
	require_once $path;
}
*/

//php 自动加载方法2
spl_autoload_register(
function($className){
	var_dump($className);
	$filepath='./'.$className.'.php';
	if(!file_exists($filepath)){
		throw new Exception('file not found');
	}
	require_once $filepath;
}
);



$a=new A();
$a->eat();


php trait用法

<?php

trait Gps{
	public function gps(){
		echo 'gps';
	}
}

<?php

class Car{
	
	use Gps;
	public function move(){
		echo 'move';
	}
}

<?php

class Mobile{
	use Gps;
	public function tel(){
		echo 'tel';
	}
}



<?php
spl_autoload_register(
function($className){
    var_dump($className);
    $filepath='./'.$className.'.php';
    if(!file_exists($filepath)){
        throw new Exception('file not found');
    }
    require_once $filepath;
}
);
$car=new Car();
$mobile=new Mobile();

$car->move();
$car->gps();

echo "\n";

$mobile->tel();
$mobile->gps();

posted on 2018-06-19 19:40  Indian_Mysore  阅读(172)  评论(0编辑  收藏  举报

导航