创建项目的项目名不能为中文
html中使用php的方式:
1. <?php ?>
2. 简写 <? ?>
3. <script language="php"></script>
注释方法:
// 单行注释
# 单行注释
/*
* 多行注释
* */
php的另类注释法
if (1==0){
echo '输出语句<h1>我是亚索</h1>';
echo '输出语句<h1>我是亚索</h1>';
}
php 语句必须以分号结束
echo '输出语句<h1>我是亚索</h1>';
常量: 类C语言 不能修改
const PP = 10;
echo PP;
宏定义: 常量名称 一般全部大写
define('PI','3.1415926');
默认是false true不区分大小写
define('II','3.1415926',true);
变量定义:
$开头 后面才是具体变量名
$a = 89;
var_dump 返回变量的 数据类型和值(十进制)
var_dump ($a); 返回值是 int(89)
$ab = true;
var_dump($ab); 返回值是 bool(true)
$s = 'yasuo';
var_dump($s); 返回值是 string(5) "yasuo"
连接 字符串1.字符串2 用点号连接
echo $s.$ss;
一般除数不设置为0 会报警告 @可以避免出现警告
$num = @(2/0);
switch(整型 字符)
switch (intval($grade/10)){
case 7:
echo '良好'.'<br>';
break;
case 6:
echo '中等'.'<br>';
break;
default:
break;
}
字符串:
$name = '呵呵';
双引号 " "能将内部的变量解析成值
单引号 ' ' 当做字符串
echo "姓名: $name".'<br>'; 输出效果: 姓名: 呵呵
echo '姓名: $name'.'<br>'; 输出效果: 姓名: $name
截取(子字符串) substr(字符串,开始的下标,长度) 如果没有长度参数 默认到最后
把字符串截成数组 str_split(字符串,长度);
数组:
1. 创建数组:
方法一 : $arr = array();
$arr[0] = ' 萌 ';
$arr[1] = ' 哈 ';
方法二 : $arr1 = array(' 哎呦 ' , ' 我去 ');
2. 输出方法 : print_r($arr1); 打印复杂数据类型 函数
print( ); 有返回值,只能打印基本数据类型
echo( ); 只能打印基本数据类型
printf( '123占位符' , 变量 );
// %d 整型 %f 浮点 %c 字符 %s 字符
例如: $a = 10;
printf( '123%d' , $a );
3. range ( 起始元素 , 结束元素 , 间隔 ) 有返回值
eg: $arr2 = range( 1 , 10 , 3 );
echo "<pre>"; // 原样输出
print_r($arr2);
echo "</pre>";
4. 添加 array_push( 需要添加元素的数组 , 元素1 , 元素2 )
5. 删除 array_splice( 数组 ,下标 , 长度 )
6. 数组长度 count( 数组 ) ;
7. 键值对 创建数组
创建方法一 :
$arr3 = array();
$arr3[ ' w ' ] = ' wang ';
$arr3[ ' y ' ] = ' ye ';
创建方法二 : key(0)=>value <key值相同会覆盖>
$arr4 = array( ' x ' => ' xiang ',' x ' => ' xin ', ' h ' => ' wanhe ');
输出方法 :
print_r($arr3); (方法一)
foreach($arr4 as $key=>$value){ (方法二)
echo $key." : ".$value.'<br>';
}
8. 二维数组
键值对 创建
$arr5 = array('数字'=>array(1,2,3),'字母'=>array('a','b','c'));
默认 创建方法
$arr6 = array(array(1,2,3),array('a','b','c'));
遍历二维数组 示例
for($i= 0;$i< count($arr6);$i++){
for($k= 0;$k< count($arr6[$i]);$k++){
echo$arr6[$i][$k].'------';
}
echo '<br>';
}
函数: 实现特定功能的代码段 (可重复调用)
1. 关键字 函数名(){函数体,功能代码}
function play(){
echo 'go shopping';
}
调用函数
play();
2. 形参 sum($a=10,$b=20)
设置默认值 调用者没有传实参 用默认值计算
function sum($a=10,$b=20){
echo '和: '.($a+$b).'<br>';
}
sum();
3. 一般都要有返回值 return 0 正常 -1 不正常
4. 值传递 (不改变外部变量值) 例如: $a = 18;$b = 22;
function change($a,$b){
$temp = $a;
$a = $b;
$b = $temp;
echo "a= $a "."b= $b".'<br>';
}
change($a,$b);
echo "a= $a "."b= $b".'<br>';
5. 引用 (改变外部变量值) 例如: $a = 18;$b = 22;
function change1(&$a,&$b){
$temp = $a;
$a = $b;
$b = $temp;
echo "a= $a "."b= $b".'<br>';
}
change($a,$b);
echo "a= $a "."b= $b".'<br>';
6. 全局变量
$age = 18;
function add(){
//局部变量 作用域当前大括号
$name = '张三';
//不能直接使用全局变量
//使用:先声明 再使用
global $age;
echo $age.'<br>';
}
add();
//静态变量 static 变量 1.只能初始化一次 2.生命周期 -> 当前程序结束
static $height = 173;
导入php文件: include / require / require_once
include / require 就相当于把sum.php里的代码全部复制过来,但是 都不能重复且同时导入
include 'sum.php';
require 'sum.php';
可以重复导入 require_once 判断是否导入这个文件
require 'sum.php';
require_once 'sum.php';
路径错误 报错 代码结束,不会执行下面的代码
require 'sum1.php';
路径错误 报警告 代码继续执行
include 'sum1.php';
对象:
类就是对 对象的抽象
对象是是一个类的具体实现
类:自己构造一个数据类型(属性<变量> 行为<函数/方法>)
类的定义(语法结构)
class 类名(规范首字符大写){}
class Person{
//权限修饰符 public protected private
//属性
//私有的 本类内部
private $name;
//受保护的 本类和子类的内部
protected $age;
//公开的 任何地方都能访问
public $sex;
//一般属性值设置为私有的
private $name,$age,$sex;
//属性可以设置初始值,但是一般不设置,如果非要设置一般为简单量 禁止19*10+10类似的复杂式
//public $age = 19*10+10; //禁止这种形式
// 一般函数都是公开的 使用默认的
// 默认public
function smoke(){
echo 'chou';
}
}
//创建对象 new 类名
$p1 = new Person;
// -> 访问对象的属性或函数
$p1 -> sex = true;
$p1 -> smoke();
面向对象的三大属性: 封装 继承 多态
封装:
class Dog{
//私有的(类的内部) 封装
private $name;
//公有的
function eat(){
echo $this->name.'吃骨头'.'<br>';
}
//属性赋值
function setName($name){
$this -> name = $name;
}
//取值
function getName(){
return $this -> name;
}
}$d1 = new Dog;
$d1 -> setName('旺旺');
echo $d1 -> getName().'<br>';
$d1 -> eat(); //调用
单继承
//父类
class Person{
private $name,$age;
function __construct($name,$age){ //构造函数 两个连续的下划线 __construct 创建
$this->name = $name;
$this->age = $age;
}
function setName($name){
$this->name = $name;
}
function getName(){
return $this->name;
}
function eat(){
echo '你妈叫你吃饭了'.'<br>';
}
}
class Student extends Person { //子类继承父类
private $study;
function __construct($name,$age,$study)
{
parent::__construct($name,$age);
$this->study = $study;
}
}
$s= new Student('小灰灰',10,111);
echo $s->getName();
$s->eat();
接口:
php不支持多继承,但开发中需要多继承 ( C++支持多继承 )
interface 接口(协议) ( 只能放未实现的方法 )
inetrface Student{
//接口中不能有属性或中间变量
function play();
}
interface Boyfriend{
function shopping();
}
//class 类 implements 接口1,接口2 (变相的实现多继承)
class student1 implements Student ,Boyfriend{
function play(){ ... }
function shopping(){ ... }
}
抽象类:
抽象类 修饰符abstract
抽象类不能创建实例
抽象类中可以使用abstract修饰方法 普通类不能使用abstract修饰方法
抽象类中可以有实现的方法
abstract class Cat{
private $name;
function eat(){
echo '吃饱了';
}
abstract function drink(); //抽象内函数
}
class Tigger extends Cat{
function drink(){
echo '喝水!';
}
}
$tig = new Tigger();
$tig->eat;
文件:
$path=" .... "; //获取文件路径
dirname($path); //返回文件位置
basename($path); //返回文件名
pathinfo($path); //以数组的形式返回文件的位置等相关信息
读取文件
fopen() 打开一个文件 如果不存在就创建一个
//w w+ r r+ a(append追加) a+
//w+ write+ 清空文件的内容再写
$file = fopen('2.txt','w+'); //打来文件
if($file){
fwrite($file,'hello'); //写入
fclose($file); //关闭
}