您的位置:首页 > 编程语言 > PHP开发

PHP---语法笔记

2016-02-03 22:58 671 查看
PHP是一种松散类型的语言

连接符 “.” 是一个点;其它语言为”+” ;

注释
PHP  //

HTML  <!-- -->

CSS  /* */


memory_get_usage 获取当前PHP消耗的内存

echo 输出boolean的时候,true输出1,false什么也不输出

八进制 前面是数字0;十六进制 前面是0x;

PHP字符串

字符串官方文档

字符串中包含引号的时候

1.单引号里面双引号

2.双引号里面单引号

3.使用转义字符 \

当引号里遇到$字符怎么办

1.双引号里,特殊字符的意义正常作用(有点像shell里面的定义),也可以理解字串变量仍可使用

2.单引号里,特殊符号失去意义

当字符串过长

Heredoc结构形式

<<<标识符
...
...
标识符;


特殊类型—资源

打开服务器文件,查看内容。fopen()函数

unset();复制变量清空

常量

define()函数

$p="myvalue";
define($p,1);
define("myvalue",1);


//常量如何取值

$result=myvalue*3*5;

$result=constant("myvalue")*3*5;


//判定常量是否被定义,返回boolean

defined($p);

defiend("myvalue");


系统常量

__FILE__: 获取文件的物理位置
__LINE__:  当前代码在第几行
PHP_VERSION  解析器的版本号
PHP_OS  当前PHP版本的操作系统名称


=== 全等 (数值相等,类型也相等)

<> 不等

!== 非全等,值不相同,或者类型不同,返回true

. 连接运算符

.= 连接赋值运算符,右边参数附加到左边参数后

错误控制运算符 @

date_default_timezone_set('asia/shanghai');
$week = date("w");//获取当天星期几


foreach (数组 as 值) 只取值,不取下标

foreach (数组 as 下标 => 值) 同时取下标和值

foreach ($arry_name as $v)
foreach($array_name $key => $v)


$arr = array();

PHP两种数组,索引数组,关联数组

索引数组赋值三种方式
$arr[0] = '苹果';
array('0'=>'苹果');
array('苹果');

访问索引数组内容
$arr['index'];
$arr[$index];//这尼玛就不用加''了

关联数组初始化
$arr=array(
'apple' => '苹果',
'banana' =>'香蕉',
...
);

赋值
$arr['apple'] = '苹果';

访问关联数组内容

$fruit0 = $fruit['banana'];


可变函数
function name() {
echo 'jobs';
}
$func = 'name';
$func(); //调用可变函数

内置函数

str_replace(); 字符串替换
function_exists  判断函数是否存在
method_exists   判断类是否存在


静态属性与方法可以在不实例化类的情况下调用

class Car {
private static $speed = 10;

public static function getSpeed() {
return self::$speed;
}
}
echo Car::getSpeed();  //调用静态方法

动态调用

$func = 'getSpeed';
$className = 'Car';
echo $className::$func();  //动态调用静态方法

静态方法中,$this 不允许使用
可以使用self,parent,static内部调用


class Car {
private function __construct() {
echo 'object create';
}

private static $_object = null;
public static function getInstance() {
if (empty(self::$_object)) {
self::$_object = new Car(); //内部方法可以调用私有方法,因此这里可以创建对象
}
return self::$_object;
}
}
//$car = new Car(); //这里不允许直接实例化对象
$car = Car::getInstance(); //通过静态方法来获得一个实例


重载

class Car {
private $ary = array();

public function __set($key, $val) {
$this->ary[$key] = $val;
}

public function __get($key) {
if (isset($this->ary[$key])) {
return $this->ary[$key];
}
return null;
}

public function __isset($key) {
if (isset($this->ary[$key])) {
return true;
}
return false;
}

public function __unset($key) {
unset($this->ary[$key]);
}
}
$car = new Car();
$car->name = '汽车';  //name属性动态创建并赋值
echo $car->name;


class Car {
public $speed = 0;

public function __call($name, $args) {
if ($name == 'speedUp') {
$this->speed += 10;
}
}
}
$car = new Car();
$car->speedUp(); //调用不存在的方法会使用重载
echo $car->speed;


去除字符串首尾空格

trim 两端 ,rtrim 右空格去除,ltrim 左空格去除

获取字符串的长度

strlen()

mb_strlen($str,”UTF-8”) 中文长度

字符串截取

substr(字符串变量,开始截取的位置,截取个数)

mb_substr() 中文截取,需要设置网页编码UTF-8在参数列表中

查找字符串

strpos();

strpos(要处理的字符串, 要定位的字符串, 定位的起始位置[可选])

替换字符串

str_replace(要查找的字符串, 要替换的字符串, 被搜索的字符串, 替换进行计数[可选])

格式化字符串

sprintf(格式,要转化的字符串);

%01.2f

% 格式开始

0 填空字元

1 占位数 (小数点也算一个占位)

.2 小数点占位数

f 转换字符结尾

字符串的合并与分割

implode() 合并函数

explode() 分割函数

字符串的转义 addslashes()

用于对特殊字符加上转义字符,返回一个字符串

OOP

调用 - >

构造函数

function __construct(){...}

析构函数

function __destruct(){...}

对象引用 &

继承 extends关键字,在PHP中只能单继承

访问控制(public,protected,private)

private---类的内部访问,这里各个语言,有一个有意思的方式,在类的内部定义了一个function get{ this->私有属性 }

protected --- 自身和子类内部可以访问

静态static --- 如果不使用该关键字,定义的属性和方法会随着不同对象的使用,譬如修改职位,造成不同对象的差异性;
访问方式 关键字 self | static
parent::静态变量  子类访问父类静态成员

final关键字(PHP 5) 不希望子类修改,final类不能被任何类继承


//接口

interface

$obj instanceof 接口类  // 判断对象接口实现了没

可以用extends让接口继承接口,当类实现子接口时,父接口定义的方法,也需要类来实现

//多态

//抽象 abstract关键字


魔术方法

//当作字符串来用时,自动调用tostring
class MagicTest{
public function __tostring(){
return "对象转换成string的时候,自动调用"
}

public function __invoke(){
return "把对象当作一个方法的时候,自动调用";
}

public function __call ($name,$argument){
echo "Calling ".$name."with parameters: ".implode(",",$argument)."\n";
}

public static function __callStatic(){
...
}
}

$obj = new MagicTest();
echo $obj."\n";
$obj(5);


_get()

_set()

_isset()

_unset()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: