求教!PHP面向对象学习解决办法
求教!PHP面向对象学习
最近在学习PHP面向对象编程的过程中,遇到了些许麻烦,想劳烦大神们为我解答下。
1、类中的静态变量,使用静态变量可以减少资源的使用。那么静态变量应该用在什么情况下呢?它与全局变量的异同点又是什么呢?~(这个让我很迷茫)。
2、类中的常量。在类中定义的常量与在非类中定义的常量又有什么优缺点呢?~在什么样的情况下需要定义常量呢?~
3、有没有较好的PHP面向对象实例,可以进行学习呢?~若有,请给出相关链接。(不是要基础的学习,是要稍微深入的类实例)
在此,谢谢各位大神了。!!
------解决方案--------------------
《PHP高级程序设计:模式、框架与测试 (高清中文PDF版)》
http://www.verycd.com/topics/2783113/
------解决方案--------------------
类中的静态变量,使用静态变量可以减少资源的使用。那么静态变量应该用在什么情况下呢?它与全局变量的异同点又是什么呢?
可以减少资源的使用?
我的理解是(分两方面):
0.类的静态变量分为“类本身的静态变量”(属于类),类方法的静态变量(属于类,但是定义的位置不一样)。
1.(存储空间)静态变量它属于整个类,这样实例化很多对象的时候就可以省下内存。
2.(运算时间)从底层来讲寻址实例变量花的时间要比类静态变量要少一点,但是类方法的静态变量那就不知道(牛人帮忙解答一下)。
什么情况下使用?
1.(属于类的静态变量)比如一个Person类你想记录实例化了多少个实例那用类的静态变量就能满足。(如一个地方有多少人口:__construct的时候加一个,__destruct的时候减一个)
2.(属于类的方法的静态变量)这种情况主要的“上下文相关”的时候(即本函数上次执行结果会直接或者间接影响本次执行结果的,如四则运算)。
它与全局变量的异同点又是什么呢?
全局变量顾名思义是全局的。面向对象编程很大的目的是为了实现“高内聚,低耦合”。就比如说人口总数$count 如果用全局变量那么下次碰到这个总数,那个总数的时候改动就大了;有时候代码很可能不是你一个人写的其它人要是也用了这个变量,那岂不是杯具了。。。但是如果使用类静态变量这个问题就不会有问题(至少每个类有自己的$count)
类中的常量。在类中定义的常量与在非类中定义的常量又有什么优缺点呢?
类中定义的常量与在非类中定义的常量区别顾名思义就是使用的范围,比如性别
Person::GENDER_MALE = '男'
Person::GENDER_FEMALE = '女'
Chicken::GENDER_MALE = '公'
Chicken::GENDER_FEMALE = '母'
Cat::GENDER_MALE = '雄'
Cat::GENDER_FEMALE = '雌'
如果定义在全局中定义这两个常量就照顾的不是那么周到了。
在什么样的情况下需要定义常量呢?
比如人的性别,动物的雌雄等等。如果不定义一个常量就用0|1 ,male|female万一male打错了变成mela那不是挺杯具的??而且假设某一天你想把用01表示改为用male和female表示那你要在搜索千万行代码。如果用常量不就是改一下定义的地方就好了。。。
- PHP code
1 2 3 4 5 6 |
|

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



Laravel simplifies handling temporary session data using its intuitive flash methods. This is perfect for displaying brief messages, alerts, or notifications within your application. Data persists only for the subsequent request by default: $request-

The PHP Client URL (cURL) extension is a powerful tool for developers, enabling seamless interaction with remote servers and REST APIs. By leveraging libcurl, a well-respected multi-protocol file transfer library, PHP cURL facilitates efficient execution of various network protocols, including HTTP, HTTPS, and FTP. This extension offers granular control over HTTP requests, supports multiple concurrent operations, and provides built-in security features.

PHP logging is essential for monitoring and debugging web applications, as well as capturing critical events, errors, and runtime behavior. It provides valuable insights into system performance, helps identify issues, and supports faster troubleshoot

Laravel provides concise HTTP response simulation syntax, simplifying HTTP interaction testing. This approach significantly reduces code redundancy while making your test simulation more intuitive. The basic implementation provides a variety of response type shortcuts: use Illuminate\Support\Facades\Http; Http::fake([ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

Do you want to provide real-time, instant solutions to your customers' most pressing problems? Live chat lets you have real-time conversations with customers and resolve their problems instantly. It allows you to provide faster service to your custom

Article discusses late static binding (LSB) in PHP, introduced in PHP 5.3, allowing runtime resolution of static method calls for more flexible inheritance.Main issue: LSB vs. traditional polymorphism; LSB's practical applications and potential perfo

The article discusses adding custom functionality to frameworks, focusing on understanding architecture, identifying extension points, and best practices for integration and debugging.

Alipay PHP...
