Maison  >  Article  >  développement back-end  >  Points de connaissances incontournables en PHP (peu de connaissances)

Points de connaissances incontournables en PHP (peu de connaissances)

PHP中文网
PHP中文网original
2017-10-30 10:26:371714parcourir

Cet article résume principalement quelques connaissances utiles en PHP et les partage pour votre référence et votre apprentissage. Jetons un coup d'œil à l'introduction détaillée :

1 Déterminez si la fonction PHP existe

. Lorsque nous créons une fonction personnalisée et comprenons l'utilisation des fonctions variables, afin de garantir que la fonction appelée par le programme existe, nous utilisons souvent function_exists pour déterminer si la fonction existe. Le même method_exists peut être utilisé pour détecter si une méthode de classe existe.

<?php
function func() {
}
if (function_exists(&#39;func&#39;)){
 echo &#39;exists&#39;;
}
   ?>

Que la classe soit définie, vous pouvez utiliser class_exists

class MyClass{
}
// 使用前检查类是否存在
if (class_exists(&#39;MyClass&#39;)) {
 $myclass = new MyClass();
}

Il existe de nombreuses méthodes de vérification de ce type en PHP, par exemple si le fichier existe file_exists, etc.

$filename = &#39;test.txt&#39;;
if (!file_exists($filename)) {
 echo $filename . &#39; not exists.&#39;;
}

2. Fonctions variables des fonctions PHP

La fonction dite variable consiste à appeler la fonction via la valeur de la variable, car la valeur de la variable est Mutable, vous pouvez donc appeler différentes fonctions en modifiant la valeur d'une variable. Il est souvent utilisé dans les fonctions de rappel, les listes de fonctions ou pour appeler différentes fonctions basées sur des paramètres dynamiques. La méthode pour appeler une fonction variable consiste à ajouter des parenthèses au nom de la variable.

function name() {
 echo &#39;jobs&#39;;
}
$func = &#39;name&#39;;
$func(); //调用可变函数

Les fonctions variables peuvent également être utilisées pour appeler des méthodes sur des objets

class book {
 function getName() {
  return &#39;bookname&#39;;
 }
}
$func = &#39;getName&#39;;
$book = new book();
$book->$func();

Méthodes statiques Dynamiques les appels peuvent également être effectués via des variables

$func = &#39;getSpeed&#39;;
$className = &#39;Car&#39;;
echo $className::$func(); //动态调用静态方法
   
//静态方法中,$this伪变量不允许使用。可以使用self,parent,static在内部调用静态方法与属性。  
class Car {
 private static $speed = 10;
  
 public static function getSpeed() {
  return self::$speed;
 }
  
 public static function speedUp() {
  return self::$speed+=10;
 }
}
class BigCar extends Car {
 public static function start() {
  parent::speedUp();
 }
}
 
BigCar::start();
echo BigCar::getSpeed();

3. Fonctionnalités avancées des classes et des objets PHP

Comparaison d'objets, lorsque deux objets de la même classe Lorsque tous les attributs d'une instance sont égales, vous pouvez utiliser l'opérateur de comparaison == pour juger. Lorsque vous devez juger si deux variables sont des références au même objet, vous pouvez utiliser l'opérateur de congruence === pour juger.

class Car {
}
$a = new Car();
$b = new Car();
if ($a == $b) echo &#39;==&#39;; //true
if ($a === $b) echo &#39;===&#39;; //false
对象复制,在一些特殊情况下,可以通过关键字clone来复制一个对象,这时__clone方法会被调用,通过这个魔术方法来设置属性的值。 
class Car {
 public $name = &#39;car&#39;;
  
 public function __clone() {
  $obj = new Car();
  $obj->name = $this->name;
 }
}
$a = new Car();
$a->name = &#39;new car&#39;;
$b = clone $a;
var_dump($b);

Sérialisation de l'objet, l'objet peut être sérialisé en chaîne via la méthode de sérialisation, utilisé pour stocker ou transférer des données, puis transmis si nécessaire pour désérialiser désérialise la chaîne en un objet à utiliser.

class Car {
 public $name = &#39;car&#39;;
}
$a = new Car();
$str = serialize($a); //对象序列化成字符串
echo $str.&#39;<br>&#39;;
$b = unserialize($str); //反序列化为对象
var_dump($b);

4. Obtenez la longueur de la chaîne au format PHP

//php中有一个神奇的函数,可以直接获取字符串的长度,这个函数就是strlen()。
$str = &#39;hello&#39;;
$len = strlen($str);
echo $len;//输出结果是5
   
//strlen函数对于计算英文字符是非常的擅长,但是如果有中文汉字,要计算长度该怎么办?
//可以使用mb_strlen()函数获取字符串中中文长度。 
$str = "我爱你";
echo mb_strlen($str,"UTF8");//结果:3,此处的UTF8表示中文编码是UTF8格式,中文一般采用UTF8编码

5. chaîne de chaîne

S'il y a une chaîne $str = '99.9';, comment faire en sorte que cette chaîne devienne 99,90 ?

Nous devons utiliser la fonction de chaîne formatée de PHP sprintf()

Description de la fonction : sprintf (format, chaîne à convertir)

Retour : bien formaté La chaîne

$str = &#39;99.9&#39;;
$result = sprintf(&#39;%01.2f&#39;, $str);
echo $result;//结果显示99.90

Expliquez, que signifie le format

%01.2f dans l'exemple ci-dessus ?

1. Ce symbole % signifie le début. L'écrire au début signifie que le format spécifié a commencé. C'est-à-dire le "caractère de début", jusqu'à ce que le "caractère de conversion" apparaisse, le format se termine.

2. Ce qui suit le symbole % est 0, qui est un "caractère à remplir", ce qui signifie que si la position est vide, elle sera remplie avec 0.

3. Ce qui suit 0 est 1. Ce 1 stipule que toutes les occupations de chaîne doivent avoir plus d'un chiffre (le point décimal est aussi un chiffre).

Si vous changez 1 en 6, la valeur de $result sera 099,90

Parce qu'il doit y avoir deux chiffres après la virgule, 99,90 a un total de 5 places, nous avons maintenant besoin de 6 espaces réservés, alors remplissez-les avec des 0.

4. Le .2 (point 2) après %01 est facile à comprendre Cela signifie que le nombre après la virgule doit occuper 2 chiffres. Si la valeur de $str est de 9,234 à ce moment, la valeur de $result sera de 9,23.

Pourquoi manque-t-il 4 ? Car après la virgule, selon la réglementation ci-dessus, il ne doit et ne peut occuper que 2 chiffres. Cependant, la valeur de $str occupe 3 chiffres après la virgule décimale, donc la mantisse 4 est supprimée, ne laissant que 23.

5. Enfin, terminez par f "caractère de conversion".

6. Chaîne PHP d'échappement

fonction d'échappement de chaîne PHP addlashes()

Description de la fonction : utilisée pour échapper un caractère de caractères spéciaux, renvoie une chaîne

Retour valeur : une chaîne échappée

$str = "what&#39;s your name?";
echo addslashes($str);//输出:what\&#39;s your name?


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn