货币问答:php 类

天罡雷珠

php中类修饰符有什么好处?

PHP有三种访问方式ublic,private和protected. 对于一个类成员的访问方式,可以是其中之一. 如果你没有指明访问方式,默认地访问方式为public. 你也可以为静态成员指明一种访问方式,将访问方式放在static关键字之前(如public static).Public成员可以被毫无限制地访问.类外部的任何代码都可以读写public属性. 你可以从脚本的任何地方调用一个public方法. 在PHP的前几个版本中,所有方法和属性都是public, 这让人觉得对象就像是结构精巧的数组.Private(私有)成员只在类的内部可见. 你不能在一个private属性所在的类方法之外改变或读取它的值. 同样地,只有在同一个类中的方法可以调用一个private方法. 继承的子类也不能访问父类中的private 成员.要注意,类中的任何成员和类的实例都可以访问private成员.好处就是,一些要派重要用场的类么用protected这种的,安全性高点,我是这么理解的 呵呵

推荐
不推荐
展开
收起
黑龙世家

php中定义类

继承的意思。比如你先写了一个“人”的类,里面有吃饭,睡觉等等方法。然后你又要写个“学生”类,学生也能吃饭睡觉,然后还能上学。这样你就可以直接用“学生”类继承一下“人”类,这样就直接获得了吃饭睡觉等等方法,不用再重复写了,只要写上学等等学生特有的方法就可以了

推荐
不推荐
展开
收起
钱六石

php类怎么写?

<?phpclass ClassName {    public $name = 'ClassName';    protected $_version = '1.0';    private $_author = 'incNick';    public function a(){}    protected function _b() {}    private function _c() {}}class Children extends ClassName {}

var 是php4中的用法,相当于public,php4中不支持protected等

public关键字:公共访问的属性、方法

protected关键字:类及子类内公共访问的属性、方法

private关键字:当前类内私有的属性、方法

final关键字:最终的,子类中不允许覆盖。如果是final class,该类不可被继承。

static关键字:静态属性、方法,如public static $abc

const关键字:常量属性,如const ABC = 'test'

个解释看手册吧亲,实在太多了

推荐
不推荐
展开
收起
天台

PHP类报错怎么办?

方法一:@

在任何错误语句之前加上@符号,即可屏蔽。

方法二:error_reporting

在PHP文件第一行加上:error_reporting(0); 即可屏蔽。

PHP

是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。

PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。

推荐
不推荐
展开
收起
石玉珠

php的抽象类和普通类的区别是什么

  1.抽象类  概念解释:顾名思义,很抽象就是不具体,不能实例化成具体的实例,可以理解成类的模板  应用场景:比如多国语言,定义一个抽象类,各国语言都继承这个抽象类来开发自己的语言,  作用:抽象类其实主要就是当做类的模板使用 做基础类 一般情况下你用不到  2.接口  作用:接口主要是规范类,接口内的方法几个参数,类里面的方法也必须是几个参数,调用通过接口就可以知道,这个类的方法必须是几个参数

推荐
不推荐
展开
收起
徐康

PHP中,一个类的属性怎样定义为另一个类

  当你声明一个类,你需要列出对象应有的所有变量和所有函数?被称为属性和方法图1中显示了一个类的构成. 注意在大括号({})内你只能声明变量或者函数. 图2中显示了如何在一个类中定义三个属性和两个方法.  以下为引用的内容:  class Name extends Another Class  {  Access Variable Declaration  Access Function Declaration  }  name = $name;  $this->password = $password;  $this->lastLogin = time();  $this->accesses++;  }  // 获取最后访问的时间  function getLastLogin()  {  return(date("M d Y", $this->lastLogin));  }  }  //创建一个对象的实例  $user = new User("Leon", "sdf123");  //获取最后访问的时间  print($user->getLastLogin() ."\n");  //打印用户名  print("$user->name\n");  ?>  当你声明属性,你不需要指明数据类型. 变量可能是整型,字符串或者是另一个对象,这取决于实际情况.在声明属性时增加注释是一个好主意,标记上属性的含义和数据类型.  当你声明一个方法,你所做的和在类外部定义一个函数是一样的. 方法和属性都有各自的命名空间. 这意味着你可以安全地建立一个与类外部函数同名的方法,两者不会冲突. 例如,一个类中可以定义一个名为date()的方法. 但是你不能将一个方法命名为PHP的关键字,如for或者while.  类方法可能包含PHP中所谓的type hint. Type hint 是另一个传递参数给方法的类的名字. 如果你的脚本调用方法并传递一个不是类的实例的变量,PHP将产生一个”致命(fatal)错误” . 你可能没有给其它类型给出type hint,就像整型,字符串,或者布尔值. 在书写的时候, type hint是否应当包含数组类型仍存在争议.  Type hint是测试函数参数或者运算符的实例的数据类型的捷径. 你可能总是返回这个方法. 确认你强制让一个参数必须是哪种数据类型,如整型. 图3 确保编译类只产生Widget的实例  以下为引用的内容:  <?php  //组件  class Widget  {  public $name='none';  public $created=FALSE;  }  //装配器  class Assembler  {  public function make(Widget $w)  {  print("Making $w->name\n");  $w->created=TRUE;  }  }  //建立一个组件对象  $thing = new Widget;  $thing->name = 'Gadget';  //装配组件  Assembler::make($thing);  ?>  除了传递参数的变量外,方法含有一个特殊的变量. 它代表类的个别实例. 你应当用这个来指向对象的属性和其它方法.一些面向对象的语言假设一个不合格的变量提交给本地属性,但在PHP中方法的任何变量只是在方法的一定范围内. 注意在User类的构造函数中这个变量的使用

推荐
不推荐
展开
收起
向朗

PHP中如何定义类及其成员属性与操作

3、类中操作的定义i. 我本人一般喜欢叫操作为成员方法,以下我会叫操作为方法其实都是一样的ii. 成员方法的定义:成员方法就是对该类定义的一些函数方法,比如拿这个类来例句例子,人能吃饭,能跑步,能敲代码,这就是成员方法。也就是可以做一些可执行性的动作我们理解为成员方法iii. 成员方法的访问和成员属性一样可以参照上面成员属性的访问介绍。iv. 成员方法和成员属性一样也包括public,protected,private,static,final并且作用域也是一样的,接下来举一些例子供大家参考和理解。v. 静态的成员方法只能访问静态的成员属性和成员方法,并且类内部访问静态方法可以使用self::静态方法(), 类外部访问使用类名::静态方法()

推荐
不推荐
展开
收起
萧清

PHP中类的使用于作用

类就是很多方法的集合这些方法是你在程序中经常会用到的一些逻辑或算法将他们包进类里面,可以提升程序的效率,减少代码的重复比如你有一个类文件 web_common.class.php ,里面有一个类,名为 common那么当你的程序需要用到此类里的方法时,首先要做的是将类文件包进来require_once 'web_common.class.php';然后呢,为你的类创建一个对象,也就是把类实例化。(未实例化的类是无法使用的,有兴趣可以试一下)$object = new common;接下来,在你需要调用类中方法的位置调用方法,如:$object->my_function();是不是很简单呢?还要说明一点的是,类中静态方法调用是和以上调用形式是不同的,调用方式如下:$object::staticfunction();关于子类继承父类的问题,有两种可能第一,父类的方法不够用或程序中需要父类的多种方法集合第二,父类为抽象类,那么想使用此类的方法必须由子类来继承才能使用继承方法如下:class son_class extands father_class {}需要说明的是,一个父类可以有多个子类,但一个子类却只能继承一个父类调用的时候,父类为普通类时,对象可以是父类也可以是子类;父类为抽象类时,对象只能为子类

推荐
不推荐
展开
收起
荆门山

PHP中调用类方法时->和::的区别是什么?

在类里面的时候,$this->func()和self::func()没什么区别。在外部的时候,->必须是实例化后的对象使用; 而::可以是未实例化的类名直接调用。举个例子:class Mytest{ function ccc($str){ echo $str; }}Mytest::ccc("123456");$object = new Mytest();$object->ccc("123456");

是不是说实例化的类不能使用::?而未实例的类可不可以使用->呢?
你用我的例子,分别试一下Mytest->ccc("->")和$object::ccc("::")就知道答案了。(都会报错)
谢谢~刚刚我也在http://www.php.net/manual/zh/language.oop5.static.php里看到明确的说明了:   静态属性不可以由对象通过->操作符来访问。     用::方式调用一个非静态方法会导致一个E_STRICT级别的错误。

推荐
不推荐
展开
收起
查看更多答案
收起