Commonly used magic methods are: __Tostring () __Call() __autoLoad() __ clone() __GET() __SET() __isset() __unset()
1 .__Tostring() Used to call when defining an output object reference. Often used to print information about some objects that must have a return value
eg: There is a persion class
Persion per =new persion()
Echo per ; //Direct calling will cause an error
We can add the __tostring() method in the class definition
Function __Tostring()
{
$str=this->$name.this->age;
Return $str;
}
2. Copy of __clone() object
Reference assignment
$per1=$per2; And this has only one address in the memory
And $per1=clone $per2 At this time There are two memory addresses
3.__call() method is automatically executed when calling a function that does not exist in the class instance
If you try to call a function that does not exist in the class, it will appear Syntax error, in order to provide a friendly prompt
we can declare the Call() method in the class;
Function __call($funName,$argu)
{
Echo "The function named ".$funName." with the parameter ".printf($argh)." does not exist",
}
4.__autoLoad automatically loads the class files used. This function is to add
to the referenced page. We have all used this situation and need to call other php in the page. file, we need to use the include method
but if there are dozens of pages that need to be referenced, it will be too cumbersome. We can use the autoload method
Function __autoload($className)
{
Include $className.".php";
}
In this way, wherever other classes are referenced, the class file will be automatically referenced. The prerequisite class file name must be class name.php
5.__GET() Access private attributes in the class
If the attributes in the class are set to private attributes, they are inaccessible in the instance of the class, but how can they be accessed?
We can use __GET()
Eg:
class has
Class person
{
Private $name;
Private $age;
}
Instantiate person per=new person ()
Per->$name; //The value cannot be obtained in this way
But if we add the __GET method in the class
Function __GET($proName)
{
Return this->$proName;
}
We can access it by calling Per->$name again
Some people may raise questions by doing this. In this way, private variables can be accessed directly. What is the difference between declaring them public?
If it is declared public, we can read it arbitrarily. If it is private, if we add the get method, then the content of the GET method will be called every time the private attribute is called, so we can add some logic to the get method. deal with.
6.__SET() sets private attributes in the class
The principle is the same as above. We can add the __SET() function to the class. Whenever a private attribute is assigned a value by calling a class instance, it will Execute the __SET function, function prototype:
Function __SET($ proName,$value)
{
This->$proName=$value;
}
Since it is a method assignment, we can do some logical processing
7.__isset() is automatically called when determining whether private attributes or methods in a class exist
First of all, let’s introduce the isset method, which is used to determine whether attributes and methods exist, but we It is impossible to determine whether a private attribute in the class exists through the class instance
If we use isset(per->$name);//The return value is false, but the $name attribute does exist, how to solve it?
Solution:
1. Define $name as a private property
2. Add
{
Return isset(this->$proName ); //Private properties can be accessed inside the class
}
In this case, we call isset($name) again; the return value will be true;
8.__unset() is automatically called when clearing private variables in a class
Combined with it is unset(). The unset method can delete attributes. When we need to delete attributes in a class, if If it is a public attribute, we can directly
delete it, but if it is private, we cannot achieve it through this method alone.
How to implement it? We can use the __unset() method to achieve this function. We need to add
to the class.
Function __unset($proName)
{
Unset(this->$proName );
}
Now we call unset($name); to delete the private attribute $name in the person class

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。

在PHP中,可以利用implode()函数的第一个参数来设置没有分隔符,该函数的第一个参数用于规定数组元素之间放置的内容,默认是空字符串,也可将第一个参数设置为空,语法为“implode(数组)”或者“implode("",数组)”。

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。


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

Dreamweaver CS6
Visual web development tools

SecLists
SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

MantisBT
Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

mPDF
mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

ZendStudio 13.5.1 Mac
Powerful PHP integrated development environment
