Detailed explanation of variable variable examples in php
Variable variable is a variable name that can be dynamically set and used. The grammatical form is a special syntax of PHP, which is rare in other languages. This article will share with you php variable variables Learning summary, friends who are interested in knowledge about php variable variables should learn together
The so-called variable variable means that the variable name of a variable can be dynamically set and used. The syntax form is PHP's special syntax, which is rare in other languages
Sometimes it is very convenient to use variable variable names. That is, the variable name of a variable can be set and used dynamically. An ordinary variable is set through declaration, for example:
<?php $a = 'hello'; ?>
A variable variable obtains the value of an ordinary variable as the variable name of the variable variable. In the above example, hello can be used as a variable variable after using two dollar signs ($). For example:
<?php $$a = 'world'; ?>
At this time, two variables are defined: the content of $a is "hello" and the content of $hello is "world". Therefore, the following statement:
<?php echo "$a ${$a}"; ?>
outputs exactly the same result as the following statement:
<?php echo "$a $hello"; ?>
They both output: hello world.
To use mutable variables with arrays, an ambiguity must be resolved. This is when writing $$a[1], the parser needs to know whether it wants $a[1] as a variable, or whether it wants $$a as a variable and extracts the variable with index [1] value. The syntax to solve this problem is to use ${$a[1]} for the first case and ${$a}[1] for the second case.
Class properties can also be accessed through variable property names. Mutable property names will be resolved within the scope of the call. For example, for the $foo->$bar expression, $bar will be parsed in the local scope and its value will be used as the property name of $foo. The same is true for $bar when it is an array cell.
You can also use curly braces to clearly delimit attribute names. Most useful when the property is in an array, or the property name contains multiple parts or the property name contains illegal characters (for example from json_decode() or SimpleXML).
Example #1 Variable attribute example
<?php class foo { var $bar = 'I am bar.'; var $arr = array('I am A.', 'I am B.', 'I am C.'); var $r = 'I am r.'; } $foo = new foo(); $bar = 'bar'; $baz = array('foo', 'bar', 'baz', 'quux'); echo $foo->$bar . "\n"; echo $foo->$baz[1] . "\n"; $start = 'b'; $end = 'ar'; echo $foo->{$start . $end} . "\n"; $arr = 'arr'; echo $foo->$arr[1] . "\n"; echo $foo->{$arr}[1] . "\n"; ?>
The above routine will output:
I am bar. I am bar. I am bar. I am r. I am B.
Example #2 Variable attribute example
<?php //You can even add more Dollar Signs $Bar = "a"; $Foo = "Bar"; $World = "Foo"; $Hello = "World"; $a = "Hello"; $a; //Returns Hello $$a; //Returns World $$$a; //Returns Foo $$$$a; //Returns Bar $$$$$a; //Returns a $$$$$$a; //Returns Hello $$$$$$$a; //Returns World //... and so on ...// ?>
Example #3 Variable attribute example
<?php // Given these variables ... $nameTypes = array("first", "last", "company"); $name_first = "John"; $name_last = "Doe"; $name_company = "PHP.net"; // Then this loop is ... foreach($nameTypes as $type) print ${"name_$type"} . "\n"; // ... equivalent to this print statement. print "$name_first\n$name_last\n$name_company\n"; ?>
The above routine will output:
John Doe PHP.net John Doe PHP.net
First, we need to write a PHP function To calculate the sum of two numbers, we can write it as follows:
/** *计算两个数的和,并返回计算的结果 * @param number $a * @param number $b * @return number */ function sum($a, $b){ return $a + $b; }
Similarly, if we need to calculate the sum of three numbers, we can write it as follows:
/** *计算两个或三个数的和,并返回计算的结果 * @param number $a * @param number $b * @return number $c 该参数可以不传入值,默认为0 */ function sum($a, $b, $c = 0){ return $a + $b + $c; }
At this time, if we need to calculate The sum of any number of numbers, so how do we need to write a PHP function?
Of course, you may consider using an array as a function parameter to achieve such a function:
/** *计算任意多个数的和,函数参数params必须为array类型 * @param array params */ function sum($params){ $total = 0; foreach ($params as $i){ $total += $i; } return $total; }
Well, there is indeed nothing wrong with this approach, because in During the program development process before the birth of variable parameters, when any number of parameters needed to be passed, arrays or other similar collections were used to represent them. However, doesn’t this kind of transmission seem clear and intuitive enough? As a PHP programmer, you should know that there is a function var_dump() in PHP for displaying detailed information about variables, for example:
$age = 18; var_dump($age); //显示变量$age的详细信息
When we need to display information about multiple variables, we can also use it like this :
$name = '张三'; $age = 18; $gender = true; var_dump($name, $age, $gender);
We know that var_dump() can receive any number of variables at the same time, and does not need to be passed in the form of an array. This method of parameter passing is more intuitive and elegant. This form of passing any number of parameters is called variable parameters. Of course, our sum() function can also be implemented in this way:
/** *计算任意多个数的和,并返回计算后的结果 */ function sum(){ //这里的括号中没有定义任何参数 $total = 0; //使用func_get_args()来获取当前函数的所有实际传递参数,返回值为array类型 $varArray = func_get_args(); foreach ($varArray as $var){ $total += $var; } return $total; } /*****下面是调用示例*****/ echo sum(1, 3, 5); //计算1+3+5 echo sum(1, 2); //计算1+2 echo sum(1, 2, 3, 4); //计算1+2+3+4
As shown in the above example, as long as the PHP built-in functionfunc_get_args() is used in the current function, The actual parameter array passed when calling the function can be used, and then we only need to process the parameter array.
Note 1: 1. If no parameters are passed in when calling, then the function func_get_args() still returns an array type, but an empty array (the array does not contain any element). 2.func_get_args() can only be called within a function, otherwise a warning message will be displayed. 3. The func_get_args() function can receive an index parameter to obtain the parameter at the specified index in the parameter array. For example, if you want to get the first argument passed in, you can call: func_get_args(1).
4. In addition, you can also call func_num_args() in the function, which can return the number of parameters passed in the current function call.
Note 2: The implementation of variable parameters in PHP is very similar to the implementation of variable parameters in JavaScript. PHP uses the built-in function func_get_args() to implement it, and JavaScriptuses the functionBuilt-in variable arguments to implement.
备注3:在最后的sum()函数代码中,sum()函数没有定义任何形式参数,所以调用该函数时可以传入0、1、2~n个参数的。不过,在一般情况下,计算和至少需要两个数来参与计算。因此,你可以在sum()函数的定义处,定义两个形式参数,例如:sum($a, $b),其他代码保持不变。这样,在调用该函数时,就必须传入至少两个参数。
备注4:由于PHP已经内置了计算数组中所有元素的和的函数array_sum(),因此上述代码的最终版本如下:
/** *计算任意多个数的和,并返回计算后的结果 */ function sum($a, $b){ return array_sum(func_get_args()); }
The above is the detailed content of Detailed explanation of variable variable examples in php. For more information, please follow other related articles on the PHP Chinese website!

What’s still popular is the ease of use, flexibility and a strong ecosystem. 1) Ease of use and simple syntax make it the first choice for beginners. 2) Closely integrated with web development, excellent interaction with HTTP requests and database. 3) The huge ecosystem provides a wealth of tools and libraries. 4) Active community and open source nature adapts them to new needs and technology trends.

PHP and Python are both high-level programming languages that are widely used in web development, data processing and automation tasks. 1.PHP is often used to build dynamic websites and content management systems, while Python is often used to build web frameworks and data science. 2.PHP uses echo to output content, Python uses print. 3. Both support object-oriented programming, but the syntax and keywords are different. 4. PHP supports weak type conversion, while Python is more stringent. 5. PHP performance optimization includes using OPcache and asynchronous programming, while Python uses cProfile and asynchronous programming.

PHP is mainly procedural programming, but also supports object-oriented programming (OOP); Python supports a variety of paradigms, including OOP, functional and procedural programming. PHP is suitable for web development, and Python is suitable for a variety of applications such as data analysis and machine learning.

PHP originated in 1994 and was developed by RasmusLerdorf. It was originally used to track website visitors and gradually evolved into a server-side scripting language and was widely used in web development. Python was developed by Guidovan Rossum in the late 1980s and was first released in 1991. It emphasizes code readability and simplicity, and is suitable for scientific computing, data analysis and other fields.

PHP is suitable for web development and rapid prototyping, and Python is suitable for data science and machine learning. 1.PHP is used for dynamic web development, with simple syntax and suitable for rapid development. 2. Python has concise syntax, is suitable for multiple fields, and has a strong library ecosystem.

PHP remains important in the modernization process because it supports a large number of websites and applications and adapts to development needs through frameworks. 1.PHP7 improves performance and introduces new features. 2. Modern frameworks such as Laravel, Symfony and CodeIgniter simplify development and improve code quality. 3. Performance optimization and best practices further improve application efficiency.

PHPhassignificantlyimpactedwebdevelopmentandextendsbeyondit.1)ItpowersmajorplatformslikeWordPressandexcelsindatabaseinteractions.2)PHP'sadaptabilityallowsittoscaleforlargeapplicationsusingframeworkslikeLaravel.3)Beyondweb,PHPisusedincommand-linescrip

PHP type prompts to improve code quality and readability. 1) Scalar type tips: Since PHP7.0, basic data types are allowed to be specified in function parameters, such as int, float, etc. 2) Return type prompt: Ensure the consistency of the function return value type. 3) Union type prompt: Since PHP8.0, multiple types are allowed to be specified in function parameters or return values. 4) Nullable type prompt: Allows to include null values and handle functions that may return null values.


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

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

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),

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.

WebStorm Mac version
Useful JavaScript development tools

DVWA
Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

Zend Studio 13.0.1
Powerful PHP integrated development environment