文章目录
PHP5:while、for循环,函数、魔术常量
一、while、for循环:
1、while 循环:
先判定条件是否成立,则循环执行代码块:
<?php
$i=0;
while($i<4)
{
echo "$i";
$i++;
echo "<br>";
}
/*结果显示:
0
1
2
3
*/
?>
2、do while 循环:
先执行以此代码块,之后再根据指定的条件判断是否执行该循环。
<?php
$i=0;
do
{
echo "$i";
$i++;
echo "<br>";
}
while($i<4)
/*结果显示:
0
1
2
3
*/
?>
3、for循环:
for(初始值;控制循环条件;增量计数器)
{
循环执行代码;
}
这里做一个0+1+2+3+4的程序:
<?php
$x=0;
for($i=0;$i<5;$i++)
{
$x=$x+$i;
echo "$x"."<br>";
}
/*结果显示
0
1
3
6
10
*/
?>
4、foreach循环:
foreach循环用于遍历数组:
首先使用foreach()将 变量 as为一 一对应,之后在foreach()循环语句中输出,达到遍历。
<?php
$Lesson=array("a"=>"Chinese","b"=>"Math","c"=>"English");
foreach($Lesson as $x=>$y)
{
echo "$x,$y";
echo "<br>";
}
/*显示结果为:
a,Chinese
b,Math
c,English
*/
?>
二、函数:
函数是PHP的真正魅力所在,它提供了超过1000个内建的函数。
1、创建函数:
<?php
function functionName()
{
// 函数中的代码
}
?>
(1)其中 functionName为该函数的名称,我们可以起其它名字,使我们一眼就认出该函数是干什么的,便于区分。
(2)函数名称应该以字母或者下划线开头,而不能以数字开头,不可以有符号。
(3)当我们写好函数之后,只需调用即可。
<?php
function hello()
{
echo "hello world!";
}
hello();
//运行结果为:hello world!
?>
2、添加参数:
由于上述函数只能进行单一的输出,我们如果想让它有规律的进行改变,我们可以进行添加参数。为了便于理解我采用了以下两个参数:
<?php
function hello($x,$y)
{
echo "hello $x and $y";
echo "<br>";
}
hello("world","!");
hello("teacher",9);
hello("China!","you");
/*运行结果为:
hello world and !
hello teacher and 9
hello China! and you
*/
?>
3、返回值:
<?php
function math($x,$y)
{
$z=$x*$y;
return($z);
}
echo math(4,5);
//运行结果显示:20
?>
三、魔术常量:
参考文献:www.runoob.com
魔术常量是php向它运行的任何脚本提供了大量的预定义常量。不过很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才会出现,或者动态加载后,或者在编译时已经包括进去了。
1、__LINE __ :
显示文件中的当前行号:
<?php
function math($x,$y)
{
$z=$x*$y;
return($z);
}
echo math(4,5);
echo "<br>";
echo __LINE__;
/*运行结果显示:
20
9
*/
?>
2、__FILE __:
显示文件的完整路径和文件名,如果用在被包含文件中,则返回被包含的文件名。
PHP4.0.2版本之后,该常量总是包含一个绝对路径,若是符号进行连接,则是解析后的绝对路径:
注意如果是在浏览器输出的时候,写代码需要注意以下格式,才可以正确显示路径与文件名:
单引号+…+双引号+单引号 .__FILE __.单引号+双引号+…+单引号
双引号+…+单引号+双引号 .__FILE __.双引号+单引号+…+双引号
3、__DIR __:
显示文件所在的目录,如果用在被包括文件中,则返回被包括的文件所在的目录。等同于dirname(__FILE __)。只有在根目录的时候,目录中名最后面才有斜杠。
<?php
echo dirname('The file stored in the "'.__FILE__.'"');
?>
4、__FUNCTION __:
显示函数名称,PHP5之后该常量返回该函数被定义时的名字区分大小写。
<?php
function Test()
{
echo "This function named ".__FUNCTION__;
}
test();
//结果显示:This function named Test
?>
5、__CLASS __:
显示类的名称,php5后返回类的名字时区分大小写。类名包括其被声明的作用区域例如(Foo\Bar)
<?php
class Test
{
function _print()
{
echo '类名为:' . __CLASS__ . "<br>";
echo '函数名为:' . __FUNCTION__ ;
}
}
$t = new Test();
$t->_print();
/*运行结果为:
类名为:Test
函数名为:_print
*/
?>
6、__TRAIT __:
PHP5.4.0后,PHP实现了代码复用的一个方法,称作traits,Trait 名包括其被声明的作用区域(例如 Foo\Bar)。
从基类继承的成员被插入的 SayWorld Trait 中的 MyHelloWorld 方法所覆盖。其行为 MyHelloWorld 类中定义的方法一致。优先顺序是当前类中的方法会覆盖 trait 方法,而 trait 方法又覆盖了基类中的方法。
<?php
class Base {
public function sayHello() {
echo 'Hello ';
}
}
trait SayWorld {
public function sayHello() {
parent::sayHello();
echo 'World!';
}
}
class MyHelloWorld extends Base {
use SayWorld;
}
$o = new MyHelloWorld();
$o->sayHello();
/*运行结果:
Hello World!
*/
?>
7、__METHOD __:
显示该方法被定义时的名字区分大小写。
<?php
function Method()
{
echo "函数名为:". __METHOD__ ;
}
Method();
//运行结果为:函数名为:Method
?>
8、__NAMESPACE __:
当用namespace 定义一个命名空间后:可以用以下输出命名空间的名称:
echo '命名空间为:"', __NAMESPACE__, '"';