资讯专栏INFORMATION COLUMN

php 语言特性学习 (一)

fuyi501 / 3463人阅读

摘要:后面可以使用任意字符和下划线例如非法的变量在函数中创建的,它的生命周期与函数一样,在主脚本中生成的变量不在函数中不是全局变量,不能在函数中使用它,但是可以用来访问使用变量的名字作为字符串的关键字给程序员一个鼓励呗微信支付宝

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 "
";
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.ini中的short_open_tag 之后可以使用

标签书写代码
一般不建议开启该功能故而默认关闭,需要手动开启才能用

11.php注释

1.第一种 c注释的风格 可以跨越多行,直到标记结束
/**
 * 哈哈哈
 */
2.c++ 方式
// 哈哈哈哈
3.shell 方式
# hahah

12.变量
变量不必声明,类型也不用声明

$做前缀,变量的名字可以用一个字母(A~Z,a~z)或者_(下划线)开始。后面可以使用任意字符和下划线
例如:
$abc
$_aa
$a123
非法的:
$123
$*ab

变量在函数中创建的,它的生命周期与函数一样,在主脚本中生成的变量(不在函数中)不是全局变量,不能在函数中使用它,但是可以用$GLOBALS[]来访问(使用变量的名字作为字符串的关键字)

**

给程序员一个鼓励呗!

**

微信

支付宝

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/23131.html

相关文章

  • SegmentFault 技术周刊 Vol.40 - 2018,来学习门新的编程语言吧!

    摘要:入门,第一个这是一门很新的语言,年前后正式公布,算起来是比较年轻的编程语言了,更重要的是它是面向程序员的函数式编程语言,它的代码运行在之上。它通过编辑类工具,带来了先进的编辑体验,增强了语言服务。 showImg(https://segmentfault.com/img/bV1xdq?w=900&h=385); 新的一年不知不觉已经到来了,总结过去的 2017,相信小伙们一定有很多收获...

    caspar 评论0 收藏0
  • SegmentFault 技术周刊 Vol.40 - 2018,来学习门新的编程语言吧!

    摘要:入门,第一个这是一门很新的语言,年前后正式公布,算起来是比较年轻的编程语言了,更重要的是它是面向程序员的函数式编程语言,它的代码运行在之上。它通过编辑类工具,带来了先进的编辑体验,增强了语言服务。 showImg(https://segmentfault.com/img/bV1xdq?w=900&h=385); 新的一年不知不觉已经到来了,总结过去的 2017,相信小伙们一定有很多收获...

    nihao 评论0 收藏0
  • SegmentFault 技术周刊 Vol.40 - 2018,来学习门新的编程语言吧!

    摘要:入门,第一个这是一门很新的语言,年前后正式公布,算起来是比较年轻的编程语言了,更重要的是它是面向程序员的函数式编程语言,它的代码运行在之上。它通过编辑类工具,带来了先进的编辑体验,增强了语言服务。 showImg(https://segmentfault.com/img/bV1xdq?w=900&h=385); 新的一年不知不觉已经到来了,总结过去的 2017,相信小伙们一定有很多收获...

    Drummor 评论0 收藏0
  • php 语言特性学习(四)

    摘要:使用映射执行授权模式结果是函数,类,变量遇到未定义的变量或者常量时会继续运行,但是它一旦遇到未定义的函数或者类时就会终止执行在类中有一个特例。如果用户定义了函数,他在调用未定义的类时,会通过返回该类的定义,新加载的类将会被使用,不会出错 1.使用映射执行授权模式 class ClassOne { function callClassOne() { prin...

    crossoverJie 评论0 收藏0
  • php 语言特性学习(三)

    摘要:当有值改变时调用实现类继承观察类的方法即完成通知方法里面可以写被通知之后的操作,如打印字符串等等观察者模式给程序员一个鼓励呗微信支付宝 1.__get __set class Test { private $arr = array( x=>null, y=>null ); function __get($property) {...

    EscapedDog 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<