1.类的写法
class MyClass {
private $id = 19;
public function __construct() {
print("开始构造");
return ;
}
public function getId() {
return $this->id;
}
public function __destruct() {
print("开始析构");
}
}
$class = new MyClass();
echo $class->getId();
2.接口写法
interface Display {
function display();
}
class hah implements Display {
function display() {
print("jajaj");
}
}
$hah = new hah();
$hah->display();
3.静态成员 静态方法访问 不需要实例化 引用类调用即可
class MyClass {
const success = 'jajaja';
public static function getValue(){
echo self::success;
}
}
echo MyClass::success;
echo MyClass::getValue();
//不用 $class = new MyClass();
4.单例模式 只被实例化一次 防止多次实例消耗资源 例如pdo 连接数据库
class Singleton {
private static $instance = null;
public static function getInstance() {
if(self::$instance == null) {
self::$instance = new Singleton();
var_dump('单例模式');
}
return self::$instance;
}
}
Singleton::getInstance();
5.抽象类以及继承
把类声明为抽象类可以防止被实例化,但是可以继承一个抽象类,并实现其中的抽象方法。包含抽象方法的类必须声明为抽象类
abstract class MyBaseClass {
abstract function display();
}
class haha extends MyBaseClass {
public function display() {
echo '你就是我的唯一';
}
}
$cls = new haha();
$cls->display();
6.函数参数类型判定
对象才解析,字符串报错 如下
class test {
}
function expectClass (test $obj) {
echo 'Kakak'.E_ALL;
}
$cl = new test();
$tt = 'asdsa';
expectClass($tt);
7.try catch 报异常
需要继承excettion类
class SqlException extends Exception {
public $problem;
function __construct($problem) {
$this->problem = $problem;
}
}
try {
throw new SqlException('could not connect database');
} catch(SqlException $e) {
print('Caught an SqlException with problem '.$e->problem);
}
8.&应用,遍历数组 改值
php4中不能遍历一个数组同时更改值,php5通过foreach 参数上加上&(引用)符号,在遍历数组的时候跟改值
$arr = array(
'1'=>'hello',
'2'=>'hel',
'3'=>'haha'
);
foreach ($arr as & $val) {
if($val=='hel') {
$val = 'hello hah';
}
}
echo '<pre>';
var_dump($arr);
exit;
9.给引用参数设置默认值
php4 只能给传递值得参数默认值,php5可以给传递引用的参数设置默认值
function test(&$arg = null) {
if($arg === null) {
print '$arg is empty';
}
else {
echo "$arg";
}
}
$ff = '213';
test($ff);
10.短标记
php 语法 一般而言
<?php ?>
配置php.ini中的short_open_tag 之后可以使用
<? ?>
标签书写代码
一般不建议开启该功能故而默认关闭,需要手动开启才能用
11.php注释
1.第一种 c注释的风格 可以跨越多行,直到标记结束
/**
* 哈哈哈
*/
2.c++ 方式
// 哈哈哈哈
3.shell 方式
# hahah
12.变量
变量不必声明,类型也不用声明
$做前缀,变量的名字可以用一个字母(A~Z,a~z)或者_(下划线)开始。后面可以使用任意字符和下划线
例如:
$abc
$_aa
$a123
非法的:
$123
$*ab
变量在函数中创建的,它的生命周期与函数一样,在主脚本中生成的变量(不在函数中)不是全局变量,不能在函数中使用它,但是可以用$GLOBALS[]来访问(使用变量的名字作为字符串的关键字)
**
给程序员一个鼓励呗!
**
- 微信
- 支付宝
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。