PHP---语法笔记
2016-02-03 22:58
671 查看
PHP是一种松散类型的语言
连接符 “.” 是一个点;其它语言为”+” ;
memory_get_usage 获取当前PHP消耗的内存
echo 输出boolean的时候,true输出1,false什么也不输出
八进制 前面是数字0;十六进制 前面是0x;
PHP字符串
字符串官方文档
字符串中包含引号的时候
1.单引号里面双引号
2.双引号里面单引号
3.使用转义字符 \
当引号里遇到$字符怎么办
1.双引号里,特殊字符的意义正常作用(有点像shell里面的定义),也可以理解字串变量仍可使用
2.单引号里,特殊符号失去意义
当字符串过长
Heredoc结构形式
特殊类型—资源
打开服务器文件,查看内容。fopen()函数
unset();复制变量清空
常量
define()函数
系统常量
=== 全等 (数值相等,类型也相等)
<> 不等
!== 非全等,值不相同,或者类型不同,返回true
. 连接运算符
.= 连接赋值运算符,右边参数附加到左边参数后
错误控制运算符 @
foreach (数组 as 值) 只取值,不取下标
foreach (数组 as 下标 => 值) 同时取下标和值
静态属性与方法可以在不实例化类的情况下调用
重载
去除字符串首尾空格
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
魔术方法
_get()
_set()
_isset()
_unset()
连接符 “.” 是一个点;其它语言为”+” ;
注释 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()
相关文章推荐
- 是 WordPress 让 PHP 更流行了 而不是框架
- php中函数的定义,调用,及获取参数的方法。和位运算等。
- 网页的分页下标生成代码(PHP后端方法)
- PHP Cookei记录用户历史浏览信息的代码
- PHPSTORM ACTIVATION 注册激活
- php的循环与引用的一个坑
- 137 php 正则表达式2-反向引用
- PHP程序猿必须学习的第二课——站点安全问题预防
- php生成图片验证码
- ThinkPHP - 前置操作+后置操作
- PHP MYSQL单向同步方案
- ThinkPHP - 空模块+空操作
- PHP获取客户端IP地址、浏览器类型版本、操作系统
- PHP 获取指定目录下所有文件(包含子目录)
- ThinkPHP - 模板引擎
- Jenkins进阶系列之——05FTP publisher plugin插件
- Jenkins进阶系列之——04Publish Over FTP Plugin插件
- Laravel 添加自定义全局函数
- php获取当前url
- getOutputStream() has already been called for this response的解决方法