第1次亲密接触PHP5(1)_PHP教程
文章来源:PHPBuilder.com
原作者:Luis Argerich
翻译:erquan
erquan注:本人现还未来得及体验PHP5,只是翻译一篇老外的文章。
以下均由erquan翻译,第1次作这些的事情希望没有误导大家。有些不准的地方请谅解。
大家看这样的行不行,如果行的话,偶就翻译完,不行就翻译了,免得误导了大家,也累哦。。。。:)
转贴时请注明文章来源,谢谢:)
PHP5的正式版还没发布,但我们可以学习、体验下开发版给我们带来的PHP新特性。
本文将集中介绍以下3大PHP5新功能:
* 新对象模式
* 结构化异常处理
* 名称空间
在正式开始之前,请注意:
*文章中的部分例子用PHP4的方法实现,只是为了增强文章的可读性
*本文所描述的新特性可能会与正式版特性有出入,请以正式版本为准。
* 新对象模式
PHP5新的对象模式在PHP4的基础上做了很大的"升级",你看起来会很像JAVA:(。
下面的一些文字将对它做一些简单介绍,并且附有小例子让您开始体验PHP5的新特性
come on~~:)
* 构造函数 和 析构函数
* 对象的引用
* 克隆对象
* 对象的3种模式:私有、公共和受保护
* 接口
* 虚拟类
* __call()
* __set()和__get()
* 静态成员
构造函数 和 析构函数
在PHP4中,和类名一样的函数被默认为该类的构造器,并且在PHP4没有析构函数的概念。(二泉 注:这点和JAVA一样)
但从PHP5开始,构造函数被统一命名为 __construct,而且有了析构函数:__destruct(二泉 注:这点却和Delphi一样,可见PHP5吸收了众多的成熟的OO思想,可C可贺~~):
例1:构造函数和析构函数
class foo {
var $x;
function __construct($x) {
$this->x = $x;
}
function display() {
print($this->x);
}
function __destruct() {
print("bye bye");
}
}
$o1 = new foo(4);
$o1->display();
?>
运行完你将看到输出了"bye bye",这是因为类在终止的时候调用了__destruct()析构函数~~
对象的引用
正如你所知道的一样,在PHP4中,对一个函数或方法传递一个变量时,实际上是传递了一个copy,除非你用了传址符&来声明
你在做一个变量的引用。在PHP5中,对象总是以引用的方式被指定:
例2:对象的引用
class foo {
var $x;
function setX($x) {
$this->x = $x;
}
function getX() {
return $this->x;
}
}
$o1 = new foo;
$o1->setX(4);
$o2 = $o1;
$o1->setX(5);
if($o1->getX() == $o2->getX()) print("Oh my god!");
?>
(二泉 注:你将看到"Oh my god!"的输出)
克隆对象
如上,如果有时不想得到对象的引用而想用copy时,怎么办?在PHP5提供的 __clone 方法中实现:
例3:克隆对象
class foo {
var $x;
function setX($x) {
$this->x = $x;
}
function getX() {
return $this->x;
}
}
$o1 = new foo;
$o1->setX(4);
$o2 = $o1->__clone();
$o1->setX(5);
if($o1->getX() != $o2->getX()) print("Copies are independant");
?>
克隆对象的方法在已被应用到很多语言中,所以你不必担心它的性能:)。
Private, Public 和 Protected
在PHP4中,你可以在对象的外面操作它任意的方法和变量--因为方法和变量是公用的。在PHP5引用了3种模式来控制
对变量、方法的控制权限:Public(公用的)、Protected(受保护)和Private(私有)
Public:方法和变量可以在任意的时候被访问到
Private:只能在类的内部被访问,子类也不能访问
Protected:只能在类的内部、子类中被访问
例子4:Public, protected and private
class foo {
private $x;
public function public_foo() {
print("I'm public");
}
protected function protected_foo() {
$this->private_foo(); //Ok because we are in the same class we can call private methods
print("I'm protected");
}
private function private_foo() {
$this->x = 3;
print("I'm private");
}
}
class foo2 extends foo {
public function display() {
$this->protected_foo();
$this->public_foo();
// $this->private_foo(); // Invalid! the function is private in the base class
}
}
$x = new foo();
$x->public_foo();
//$x->protected_foo(); //Invalid cannot call protected methods outside the class and derived classes
//$x->private_foo(); //Invalid private methods can only be used inside the class
$x2 = new foo2();
$x2->display();
?>
提示:变量总是私有形式,直接访问一个私有变量并不是一个好的OOP思想,应该用其他的方法来实现 set/get 的功能
接口
正如你知道的一样,在 PHP4 中实现继承的语法是"class foo extends parent"。无论在PHP4 还是在 PHP5 中,都不支持多重继承即只能从一个类往下继承。 PHP5中的"接口"是这样的一种特殊的类:它并不具体实现某个方法,只是用来定义方法的名称和拥有的元素,然后通过关键字将它们一起引用并实现具体的动作。
Example 5: 接口
interface displayable {
function display();
}
interface printable {
function doprint();
}
class foo implements displayable,printable {
function display() {
// code
}
function doprint() {
// code
}
}
?>
这对代码的阅读性和理解性是非常有帮助的:读到该类时,你就知道foo包含了接口displayable和printable,而且一定有print()(二泉 注:应该是doprint())方法和display()方法。不必知道它们内部是如何实现就可轻松操作它们只要你看到foo的声明。
虚拟类
虚拟类是一种不能被实例化的类,它可以像超类一样,可以定义方法和变量。
在虚拟类中还可以定义虚拟的方法,而且在该方法也不能在该类是被实现,但必须在其子类中被实现
Example 6: 虚拟类
abstract class foo {
protected $x;
abstract function display();
function setX($x) {
$this->x = $x;
}
}
class foo2 extends foo {
function display() {
// Code
}
}
?>
__call()方法
在PHP5时,如果你定义了 __call()方法,当你试图访问类中一个不存在的变量或方法时,__call()就会被自动调用:
Example 7: __call
class foo {
function __call($name,$arguments) {
print("Did you call me? I'm $name!");
}
}
$x = new foo();
$x->doStuff();
$x->fancy_stuff();
?>
这个特殊的方法被习惯用来实现"方法重载",因为你依靠一个私有参数来实现并检查这个参数:
Exampe 8: __call 实现方法重载
class Magic {
function __call($name,$arguments) {
if($name=='foo') {
if(is_int($arguments[0])) $this->foo_for_int($arguments[0]);
if(is_string($arguments[0])) $this->foo_for_string($arguments[0]);
}
}
private function foo_for_int($x) {
print("oh an int!");
}
private function foo_for_string($x) {
print("oh a string!");
}
}
$x = new Magic();
$x->foo(3);
$x->foo("3");
?>
__set()方法 和 __get()方法
当访问或设置一个未定义的变量时,这两个方法将被调用:
Example 9: __set and __get
class foo {
function __set($name,$val) {
print("Hello, you tried to put $val in $name");
}
function __get($name) {
print("Hey you asked for $name");
}
}
$x = new foo();
$x->bar = 3;
print($x->winky_winky);
?>

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Le navigateur Edge est livré avec une fonction de traduction qui permet aux utilisateurs de traduire à tout moment et n'importe où, ce qui apporte une grande commodité aux utilisateurs. Cependant, de nombreux utilisateurs disent que la page Web de traduction intégrée manque automatiquement. Que dois-je faire si le navigateur Edge est automatiquement installé. la page de traduction que j'ai apportée manque ? Laissez ce site vous expliquer comment restaurer la page Web traduite fournie avec le navigateur Edge si elle est manquante. Comment restaurer la page Web de traduction fournie avec le navigateur Edge manquante 1. Vérifiez si la fonction de traduction est activée : Dans le navigateur Edge, cliquez sur l'icône à trois points dans le coin supérieur droit, puis sélectionnez l'option « Paramètres ». Sur le côté gauche de la page des paramètres, sélectionnez l'option Langue. Assurez-vous que "Traduire&rd"

Les différences entre php5 et php8 concernent les performances, la structure du langage, le système de types, la gestion des erreurs, la programmation asynchrone, les fonctions de bibliothèque standard et la sécurité. Introduction détaillée : 1. Amélioration des performances. Par rapport à PHP5, PHP8 présente une énorme amélioration des performances. PHP8 introduit un compilateur JIT, qui peut compiler et optimiser certains codes d'exécution à haute fréquence, améliorant ainsi la vitesse d'exécution. PHP8 introduit de nouvelles structures et fonctions de langage. PHP8 prend en charge les paramètres nommés, permettant aux développeurs de transmettre les noms des paramètres au lieu de l'ordre des paramètres, etc.

Selon les informations du 22 juillet, le Weibo officiel de Xiaomi ThePaper OS a annoncé que la traduction Xiaoai a été mise à niveau. Des sous-titres en temps réel ont été ajoutés aux traductions japonaises et coréennes, et des vidéos sans sous-titres et des conférences en direct peuvent être transcrites et traduites. en temps réel. L'interprétation simultanée en face à face prend en charge la traduction dans 12 langues, dont le chinois, l'anglais, le japonais, le coréen, le russe, le portugais, l'espagnol, l'italien, le français, l'allemand, l'indonésien et l'hindi. Les fonctions ci-dessus ne prennent actuellement en charge que les trois nouveaux téléphones suivants : Xiaomi MIX Fold 4 Xiaomi MIX Flip Redmi K70 Extreme Edition Il est rapporté qu'en 2021, les sous-titres AI de Xiao Ai seront ajoutés aux traductions japonaises et coréennes. Les sous-titres AI utilisent la technologie d’interprétation simultanée développée par Xiaomi pour offrir une expérience de lecture des sous-titres plus rapide, plus stable et plus précise. 1. Selon le communiqué officiel, Xiaoai Translator ne peut pas être utilisé uniquement dans des lieux audio et vidéo

1. Comment pouvez-vous gagner de l'argent en publiant des articles sur Toutiao aujourd'hui ? Comment gagner plus de revenus en publiant des articles sur Toutiao dès aujourd'hui ! 1. Activer les droits et intérêts fondamentaux : les articles originaux peuvent générer des bénéfices grâce à la publicité, et les vidéos doivent être originales en mode écran horizontal pour générer des bénéfices. 2. Activez les droits de 100 fans : si le nombre de fans atteint 100 fans ou plus, vous pouvez tirer des bénéfices des micro-titres, de la création originale de questions-réponses et des questions-réponses. 3. Insistez sur les œuvres originales : les œuvres originales comprennent des articles, des micro-titres, des questions, etc., et doivent contenir plus de 300 mots. Veuillez noter que si des œuvres illégalement plagiées sont publiées en tant qu'œuvres originales, des points de crédit seront déduits, et même les éventuels bénéfices seront déduits. 4. Verticalité : lorsque vous rédigez des articles dans des domaines professionnels, vous ne pouvez pas écrire à volonté des articles dans tous les domaines, vous n'obtiendrez pas de recommandations appropriées, vous ne pourrez pas atteindre le professionnalisme et le raffinement de votre travail et il sera difficile d'attirer des fans. et les lecteurs. 5. Activité : forte activité,

Comment le navigateur Sogou traduit-il ? Lorsque nous utilisons habituellement le navigateur Sogou pour vérifier les informations, nous rencontrons certains sites Web qui sont tous en anglais. Parce que nous ne comprenons pas l'anglais, il est très difficile de parcourir le site Web. Cela n'a pas d'importance. vous rencontrez cette situation ! Le navigateur Sogou dispose d'un bouton de traduction intégré. En un seul clic, le navigateur Sogou traduira automatiquement l'intégralité de la page Web pour vous. Si vous ne savez pas comment l'utiliser, l'éditeur a compilé les étapes spécifiques pour le traduire sur le navigateur Sogou. Si vous ne savez pas comment, suivez-moi et continuez à lire ! Comment traduire le navigateur Sogou 1. Ouvrez le navigateur Sogou, cliquez sur l'icône de traduction dans le coin supérieur droit 2. Sélectionnez le type de texte à traduire, puis entrez le texte qui doit être traduit 3. Le navigateur Sogou traduira automatiquement le texte. à ce stade, l'opération de navigation Sogou ci-dessus est terminée. Comment traduire tous les contenus.

Les navigateurs ont généralement des fonctions de traduction intégrées, vous n’avez donc pas à craindre de ne pas pouvoir comprendre lorsque vous naviguez sur des sites Web en langues étrangères ! Google Chrome ne fait pas exception, mais certains utilisateurs constatent que lorsqu'ils ouvrent la fonction de traduction de Google Chrome, il n'y a ni réponse ni échec. Que doivent-ils faire ? Vous pouvez essayer la dernière solution que j'ai trouvée. Didacticiel d'utilisation : cliquez sur les trois points dans le coin supérieur droit et cliquez sur Paramètres. Cliquez sur Ajouter une langue, ajoutez l'anglais et le chinois et définissez les paramètres suivants. Le paramètre anglais demande si les pages Web doivent être traduites dans cette langue. Le paramètre chinois affiche les pages Web dans cette langue et le chinois doit être déplacé vers le haut. peut être définie comme langue par défaut. Si vous ouvrez la page Web et qu'aucune option de traduction n'apparaît, cliquez avec le bouton droit et sélectionnez Traduire le chinois, OK.

Construire un outil de traduction en temps réel basé sur JavaScript Introduction Avec la demande croissante de mondialisation et la fréquence des échanges et des échanges transfrontaliers, les outils de traduction en temps réel sont devenus une application très importante. Nous pouvons exploiter JavaScript et certaines API existantes pour créer un outil de traduction en temps réel simple mais utile. Cet article présentera comment implémenter cette fonction basée sur JavaScript, avec des exemples de code. Étapes de mise en œuvre Étape 1 : Créer une structure HTML Tout d'abord, nous devons créer un code HTML simple.

Pourquoi Google Chrome ne peut-il pas traduire le chinois ? Comme nous le savons tous, Google Chrome est l'un des navigateurs avec traduction intégrée. Lorsque vous parcourez des pages écrites dans d'autres pays dans ce navigateur, le navigateur traduira automatiquement la page en chinois. Récemment, certains utilisateurs ont déclaré qu'ils traduisaient en chinois. ne peut pas être effectué. Pour le moment, nous devons le corriger dans les paramètres. Ensuite, l'éditeur vous apportera la solution au problème que Google Chrome ne peut pas traduire en chinois. Les amis intéressés peuvent venir y jeter un œil. Google Chrome ne peut pas traduire la solution chinoise 1. Modifier le fichier hosts local. Hosts est un fichier système sans extension. Il peut être ouvert avec des outils tels que le Bloc-notes. Sa fonction principale est de définir la relation de mappage entre les adresses IP et les noms d'hôtes. est une adresse IP de mappage
