草庐IT

php - 为什么 PHP 被认为是面向对象的?

我一直在阅读OOP的定义,但不明白为什么PHP被认为是面向对象的。这与PHP的“基本级别”不是和更高级的功能有什么关系吗? 最佳答案 在许多标准库已经创建并且语言已经建立之后,面向对象的功能通过版本3-5分阶段添加到PHP。Background因此,标准库不是面向对象的,因此日常PHP脚本根本不需要使用任何OO风格的功能。尽管PHP现在具有面向对象语言的大部分标准功能,但许多作者并未使用它们。后来添加到该语言的库函数继续使用函数式风格以保持一致性,尽管许多扩展模块确实使用对象。 关于ph

php - C++ 与 PHP - 面向对象的问题 :

我最近一直在使用PHP,虽然我发现来自C++/C#/python等的语言非常简单,但当涉及到它的OO表示时,我遇到了一些奇怪的差异(也许)。如果有人能回答几个简短的问题,我将不胜感激:)构造函数可以在PHP中返回结果值吗?当类中的成员函数调用类中的另一个成员函数时一个类,我必须使用self::作用域还是只是一个提示?为什么会有self::和$this->,有什么区别?是否需要删除用new创建的对象,或者将超出范围删除它?我不确定它是否真正动态,或者如果有像C#中那样的垃圾收集。我知道问题有点简单,而且我一直看到使用所有这些东西的代码-但我还没有看到足够具体的东西,而且我家里也没有一本好

PHP 面向对象 - 实现多个用户角色的最佳方式

我有三种类型的用户:A、B、C..因此有一个用户基类,然后我们有3个派生类。但是,一个用户可能同时属于两种类型。我们将如何以一种体面的方式处理这个问题,牢记用户的类型将定义他们在应用程序中拥有的访问类型。 最佳答案 也许您应该重新定义您的设计。我会说最好定义两个类:角色类一个用户类然后,用户类可以拥有一组角色。这将使整个设计更简单、更清晰。一个用户可以没有、一个或不同的角色。但是用户本质上并不是它可能拥有的任何角色。它只是具有承担角色的能力。但是你当然可以在这里使用装饰模式,正如其他海报所说的那样。

PHP 面向对象 : Method Chaining

我有以下代码,$value);}publicstaticfunctiondraw(){self::$params;}}$test=Templater::assign('key','value');$test=Templater::draw();print_r($test);如何更改此脚本以便我可以使用它?$test=Templater::assign('key','value')->assign('key2','value2')->draw();print_r($test); 最佳答案 您不能使用MethodChaining使用静态

php - 在 PHP 中构建一个真正的面向对象的框架,需要建议

我一直在使用CodeIgniter框架,但是在学习了Java和接口(interface)、抽象类、包等令人敬畏的功能之后,并且PHP5也支持其中的大部分功能,我准备毕业并构建一个PHP中真正的OO框架使用了所有这些功能(包括namespace),因此我可以构建更优雅的设计。我在想的是,系统中的所有内容并不像在CodeIgniter中那样共享一个$this->对象,例如:$this->load->model('box');$this->box->something();您将执行以下操作来加载Box模型并调用其something()方法。$box=newFramework\Models\B

php - 面向对象关系

我被要求用面向对象编程术语(假设是在php环境中)描述车辆、汽车、丰田之间的关系。我被难住了。有人可以帮我吗?谢谢... 最佳答案 我认为丰田指的是公司。我会说:Vehicle是一个对象,Car是Vehicle的一种。Toyota是Vehicle对象的特定实现者,其brake方法重载以返回false。 关于php-面向对象关系,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/350

PHP 面向对象的表单生成器

我正在尝试创建一个面向对象的表单生成器。请记住,它只会被我们公司的少数人用来解决特定问题。我目前面临两个小警告。创建元素的语法我可以采取的方法很少。在构造函数中设置所有内容。作为一个缺点,这可能会导致不一致的构造函数使用Input::create('text','name',array('maxlength'=>10));限制构造函数类型,只公开最常用的属性作为方法(保留一个方法用于大量属性设置)Input::create('text')->name('name')->value('value')->attribute('max_length',10);通过为每个属性创建方法或使用__

php - 有没有PHP面向对象编程实战教程?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。我学习PHP有一段时间了,也阅读了一些OOP教程。我尝试使用OOPPHP开始我自己的网站,但我迷路了。我不确定在实际项目中该做什么。我想也许我需要一些实践教程,这是在谈论真实的项目。我尝试阅读一些PHP框架(如CodeIgniter)的代码,但我无法全部理解。有没有关于真实项目的教程,并且有完整的解释?

PHP 面向对象 "Implementation must be compatible"

这个问题在这里已经有了答案:Interfaceimplementation:declarationmustbecompatible(3个答案)关闭去年。我在使用PHPOOP和类型提示时遇到了奇怪的问题。这是一个例子:abstractclassAC{}classCextendsAC{}interfaceI{functionmethod(AC$abstract);}classInterfaceImplementationimplementsI{functionmethod(C$concrete){}}这段代码不会运行,说方法与接口(interface)声明不兼容。我认为它是兼容的,因为C扩

java - 面向对象设计 : generic handling of sub classes that introduce new fields

这是一个我一直遇到的设计问题,所以我想我最终会把它放在那里,看看人们会如何处理它。问题如下:我确定了一个特定的类,它大部分描述了我将使用的对象的所有实例,包括行为和数据方面的。这很好,适用于基本对象。然后出现了一些其他类型的对象,它们需要相同的数据和行为,但还希望在这里或那里有一个额外的字段,或者一个额外的数据结构。让我们称这个类为Something:publicclassSomething{privateintid;privateStringfieldA;privateStringfieldB;privateListlist;//Thenwehavegetters,setters,a