php入门

本地服务器

1.打开本地服务器

sudo apachectl start

2.进入服务器

/jas/资源库/webserver/Documents/    可以改权限

里面放文件访问,打开127.0.0.1

3.结束

sudo apachectl stop

XAMPP服务

1.打开阿帕奇

2.测试版本,在服务器里放入一个test.php文件

3.在test.php文件里写上

出现版本号

4.访问http://localhost/class/test/test.php

php语法入门

1.echo只能打印字符串和数字

echo "hello world!";
echo "<br>";
echo (111);//数字不加引号可以

2.变量声明

$a = "你好";
echo $a;

$b="hello";
$hello="hello jas";
echo $$b;                //hello jas

3.变量解析,字符串连接使用“.”

$c=”你好”;
$res1=”张三”;
echo $c.$res1; //你好张三

$res2="张三$c";//必须双引号才会解析
$res2="张三'$c'";//张三'你好'
echo $res2;

4.自动转换

$d=1;
$e="2";
echo gettype($d+$e);//整型integer
echo ($d+$e);//3

5.强制转换

echo gettype($e);  //string
echo gettype((int)$e);//integer

6.字符串定义方式二:

// 定界符,一般定义长字符串;注意,结尾顶头写,前后不许有空格
$str=<<<AAA
fdffdfdfdfdfdff
AAA;
echo $str;//fdffdfdfdfdfdff

7.php不会传值

$arr1=[1,2,3];
$arr2=$arr1;//想传值加&符号
$arr2[0]=5;
print_r($arr1);//Array ( [0] => 1 [1] => 2 [2] => 3 )


$arr1=[1,2,3];
$arr3=&$arr1;//想传值加&符号
$arr3[0]=5;
print_r($arr1);//Array ( [0] => 5 [1] => 2 [2] => 3 )

8.数组定义方式

$arr=array("张三","李四","王二");//索引数组
print_r($arr);    //Array ( [0] => 张三 [1] => 李四 [2] => 王二 )
var_dump();    // array(3) { [0]=> string(6) "张三" [1]=> string(6) "李四" [2]=> string(6) "王二" }

数组遍历

//遍历
echo "<hr/>"; 
$arr = array('武汉'=>'三大火炉之一','上海'=>'魔都');
foreach ($arr as $key => $value) {
    echo $key.':'.$value;
    echo "<hr/>"; 
}

$arr2 = array(
    '电子产品'=>array('iphone'=>'64g','华为'=>'32g'),
    '食品'=>array('旺旺'=>'雪饼','百事'=>'可乐'),
);

foreach ($arr2 as $key => $value) {
    foreach ($value as $key1 => $value1) {
        echo $key.'-'.$key1.'-'.$value1."<hr/>";
    }
}

数组操作

$arr = array('张三','李四','王二');
unset($arr[0]); //删除arr中的第一个
print_r($arr); 
echo "<hr/>";

//is_type  判断是否是某种类型,会返还boolean值
echo is_array($arr);
echo "<hr/>";

echo in_array('李四',$arr); //判断 张三是否在array中
echo "<hr/>";

运算符等其他操作

//运算符等基本语法和JS基本都是一样的,来列列不同点
$a = 4;
echo '$a+=5 ---'.$a+=5;  //9
echo '<hr>';
echo '$a.=5 ---'.$a.=5;  //95

// && == and(与)   || == or(或)   !(非)  xor(亦或)
//  !=  ==  <> (不等于)
echo '<hr>';
$a = mt_rand(1,10);  //随机一个1-10的数  包含1和10
echo $a;
echo '<hr>';

$b = $a <= 5 ? '小于5' : '大于5';  //记得要用一个新的值保存
echo $b;
echo '<hr>';

//有返还至的函数
// 5!= 5*4*3*2*1   阶乘

function jiechen($num){
    if($num>0){
        return jiechen($num-1)*$num;
    }else{
        return 1;
    }
}

echo jiechen(5);

echo '<hr>';
$a = 5;
function test(){
    global $a;
    echo $a;  //不能直接获取到外面的$a 需要用全局变量设置一下,或者传参

    $GLOBALS['b'] =$a;  //传递函数里面的变量到外面
}
test();
echo '<hr>';
echo $GLOBALS['b'];

echo '<hr>';
function digui(){
    static $a=5;  //静态变量,常驻内存,每次执行函数$a都存在不会被重新赋值
    if($a>0){
        echo $a;
        $a--;
        digui();
    }else{
        return false;
    }
}
digui();

echo '<hr>';
$arr = [1,2,3];
$arr[] ='zhangsan';  //向数组中添加张三到最后,  也是方式三定义数组
array_unshift($arr,'lisi');
array_push($arr,'wanger');
print_r($arr);

$arr =range(1,10);   //生成一个1-10的数组  只能是整数
count($arr);  //数组长度

echo '<hr>';
$str = 'a,b,c,d';
strlen($str); //字符串长度  注意 一个中文字符站三个字节,长度是三
$arr=explode(',',$str);  //相当于split
print_r($arr);
$str = implode('-',$arr);
echo $str;

$arr = ['a','c','d','b'];
sort($arr); //顺序
rsort($arr);//倒序

// $res = strops($str,'a');  //找a出现的位置
// $res = str_replace('x','y',$res); // 把$res中 x替换为y

echo '<hr>';
$arr = array(1=>'zhangsan');
$str = json_encode($arr);   //转为字符串
echo $str;
echo '<hr>';
$arr = json_decode($str);  //字符串解码为对象
print_r($arr);

$a = '<h1>这是解析后的好</h1>';  //直接输出会以标签的方式显示
echo htmlspecialchars($a);  //将以字符串的方式返还成实体