热搜词
发表于 2021-12-3 09:15:22 | 显示全部楼层 |阅读模式
在php学习中经常搞不明白 ->,=>,::,$this->的作用,下面通过例子讲解下。

1.数组([])

php的变量名后加中括号[ ]表示定义一个数组
$searchs[]    这样就是定义一个名为 searchs 的数组。
当$searchs 数组下标是逐步递增的数值时,就可这样定义数组的值。
如果   $searchs[0]='111';
$searchs[] = '{actor}' 就相当于$searchs[1] = '{actor}';
如果$searchs没有定义任何值,则相当于$searchs[0] = '{actor}';

2.数组(=>)
数组中“=>”用来定义数组值的,比如:
  1. $arr1 = array(0=>'php',1=>'is',the=>'the');
  2. Echo $arra[0],$arr1[1],$arr[‘the’];   //对应输出设置的值
复制代码

3.类(class)
在 PHP 中,可以使用 class 关键字加类名的方式定义一个类,然后用大括号{}将在类体中定义类的属性和方法包裹起来,类的语法格式如下:
  1. [修饰类的关键字] class 类名{
  2.     类的属性和方法;
  3. }
复制代码

4.函数(function)
函数是单独存在的,也就是面向过程部分定义的。平常说的函数,应该是全局作用域里的函数,引入后可以在任何地方直接调用。
函数,你可以当做一个算法的实现。
function是用于声明用户自定义函数的关键字。

5.方法(function)
方法是“类”里的"函数",只能通过对象调用;特别的,类的静态方法能够通过类名直接调用。
方法是依赖于“类”存在的,也就是面向对象中定义的。
方法,则可以当做一个业务逻辑的实现。
类的方法可以设定访问权限,需要通过对象或者类来调用;函数是公共的,都可以使用。

6.实例化对象(new)
当定义好类后,我们使用new关键字来生成一个对象。
$对象名称 = new 类名称();
$对象名称 = new 类名称([参数列表]);

7.类的内部使用本类的属性或方法($this->)
我们一般在一个类的内部使用本类的属性或方法时,就使用$this->
$this->表示实例化后的具体对象

示例:
  1. Class a{
  2. Var $name;
  3. Function Getname(){
  4. Echo $this->name;
  5. }
  6. }
  7. //实例化一个对象
  8. $name1 = new a;
  9. $name1->name = “赋值给name”;
  10. $name1->Getname();      //调用函数,并且输出为 “赋值给name”
复制代码

8.对象的属性和方法(->)
php 中的 "->" 符号是用在对象中的,使用之前需要实例化一个对象, "->" 的左边是对象名称,右边是对象的属性或者方法,也就是右边用来引用一个类的属性(变量)或方法(函数)。可以把 "->" 理解成调用的意思。
示例一:
  1. <?php
  2. //一个Person类
  3. //有三个属性和两个方法
  4. class Person
  5. {
  6. var $name;   //人的名子
  7. var $sex;   //人的性别
  8. var $age;   //人的年龄
  9. function sayHello() //这个人可以说话的方法
  10. {
  11. echo $this->name."对你说Hello";
  12. }
  13. function run($step) //这个人可以走路的方法
  14. {
  15. echo "这个人走了".$step."步";
  16. }
  17. }
  18. //实例化一个对象
  19. $p1=new Person();
  20. //对象属性初始化
  21. $p1->name="张三";
  22. //调用 方法
  23. $p1->sayHello();
  24. $p1->run(5);
  25. ?>
复制代码

示例二:
  1. <?php
  2. //一个people类
  3. //有两个属性和一个方法

  4. class People{
  5. public $name;
  6. public $age;
  7. function say($word)
  8. {
  9. echo $word;
  10. }

  11. }
  12. //实例化一个对象
  13. $a = new People();
  14. //对象属性初始化
  15. $a->name="zhangsan";
  16. echo $a->name;
  17. //调用 方法
  18. $a->say("hello");
  19. ?>
复制代码

9.调用类中静态属性和静态方法(::)
PHP中双冒号“::”用来直接调用类中的属性或方法,正常的情况我们用实例化对象来调用类中的属性或方法,但使用::可以不需要实例化对象,直接调用即可。
示例:
  1. Class b{
  2. Var $name=”test”;
  3. Function Getname(){
  4. Echo “test is good”;
  5. }
  6. }
  7. //直接调用
  8. Echo b::Getname();//输出为test is good
复制代码

相关链接:
http://www.admin365.cn/thread-40704-1-1.html

10.三目(元)运算符(?:)
PHP中由问号(?)和冒号(:)组成三目(元)运算符
三目运算符格式:(expr1) ? (expr2) : (expr3)
相关关链接:
http://www.admin365.cn/thread-45928-1-1.html

11.连接赋值运算符“ .=”
在php中 .= 符号被称为连接赋值运算符,是用来连接两个或多个字符串的,而它与“.”连接运算符不同的是,它将右边参数拼接到左边的参数的后边,并在赋值给左边的参数。

例如:
$a = 'a';
$a .= 'bc';    //相当于  $a = 'a'.'bc'

当变量$a的值为 a 时
执行$a .= 'bc'
结果为$a = 'abc'

当变量$a的值为 x 时
执行$a .= 'bc'
结果为$a = 'xbc'


全部评论0
回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|管理员之家 ( 苏ICP备2023053177号-2 )

GMT+8, 2024-11-24 15:23 , Processed in 0.167656 second(s), 22 queries .

Powered by Discuz! X3.5

Cpoyright © 2001-2024 Discuz! Team