PHP基础之变量、运算符、控制语句(1)

变量类型的转换

php中变量的类型是可以随时转换的,非常常见的是
字符串==>数字的转换
数字、字符串==>布尔值的转换
转换之后,相等但是不全等。

其他值转成布尔值

以下值都被当成布尔的假,而其他值都被当成布尔的真。

其他值描述转换成布尔值的结果
‘’空字符串false
‘0’字符串0false
0数字0false
0.0浮点型的0false
false布尔值假false
NULLNULLfalse
array()空数组false
if ('' == NULL) { //也可以使用flase
	echo "空字符串果然假";
}

字符串到数字的转换

字符串到数字的转换,从左到右截取,直到碰到不合法的数字,截取出来的部分转成数字,
开头碰到不合法的数字,转成数字0

$a = 'hello12.5world55';
$a = $a + 3;
var_dump($a); // int 3

$a = 123;
$a = $a . 'hello'; //字符串的拼接使用点
echo "$a"; // 123hello

赋值

赋值分两种:
1.传值赋值:就相当于一个东西,我复制一份给你,但是并不会影响我自己原来的那一份。(新的存储空间)
2.引用赋值:就相当于唯一一个东西,不可复制,只可共享。(地址引用)

变量赋值之传值赋值

$li = 29;
$wang = 23;
$wang = $li;
var_dump($li,$wang); // int 29 int 29

$wang = 'hello';
var_dump($li,$wang); // int 29 string 'hello' (length=5)

变量赋值之引用赋值

$li = 29;
$wang = 23;
$wang = &$li;
var_dump($li,$wang); // int 29 int 29

$wang = 'hello';
var_dump($li,$wang); // string 'hello' (length=5) string 'hello' (length=5)

变量销毁

销毁变量:只是剪断变量对内存地址的引用,并不会销毁变量。
unset(): 销毁变量
isset():判断变量是否已声明

$a = 99;
unset($a);
if (isset($a)) {
  echo "a存在";
}else{
	echo "a不存在";
}

$li = 29;
$wang = &$li;
var_dump($li,$wang);// 29 29
$wang = 20;
var_dump($li,$wang);// 20 20
unset($li);//销毁后,表示未定义变量,引用错误,
var_dump($li,$wang);// null 20 

动态变量名

用变量的值再做变量的名;

//动态变量名
$liubei = '河北人';
$laoda = 'liubei';
echo $laoda,'<br/>',${$laoda}; // liubei 河北人

运算符

三个注意:

  1. 除数不可为0
  2. 整数的最大值为四十多亿
  3. 取模算法时,结果的正负仅取决被除数的正负
 // 第一个注意点:
 $a = 10;
 $b = 0;
 echo $a/$b; // Warning: Division by zero  除数不能为0

 // 第二个注意点:
 $a = 3200000000;
 $b = 3200000000;
 $c = $a + $b;
 var_dump($c); 	// float 6400000000  超出四十多亿,转换成浮点型

 // 第三个注意:
 $a = -10; // 换成10,-10各试
 $b = 3;  // 换成3,-3各试
 var_dump($a%$b); //取模算法时,结果的正负仅取决被除数的正负

比较运算符

凡运算,必有结果,比较运算符的运算结果是布尔值

 $a = 5;
 $b = 3;
 $c = ($a > $b);
 var_dump($c); // boolean true
 $c = ($a==$b);
 var_dump($c); // boolean false

 //=== 全等于,要求类型相等且值相等
 $a = 5;
 $b = '5';
 var_dump($a == $b);//boolean true
 var_dump($a === $b);//boolean flase

 $res = 0;//integer,//false Boolean型
	if ($res === false) {
		echo "没找到";
	}else{
		echo "找到";
	}

三元运算符 ?:

// 给定两个数,帮我找到大的
$a = 13;
$b = 28;
$c = null;
$c = ($a >= $b)?$a : $b;
var_dump($c);

// 运用三元运算符,比较三个数的大小
$a = 3;
$b = 23;
$c = 18;
$d = null;
$d = ($c >= ($d = ($a >= $b)?$a : $b))?$c : $d;
var_dump($d);

逻辑运算符-与或非

某女要求有房且有车,才嫁

$house = true;
$car = false;
if ($house == true) {
	if ($car == true) {
		echo "嫁";
	}else{
		echo "不嫁";
	}
}else{
	echo "遗憾";
}

// 逻辑运算符方法
$house = true;
$car = true;
$res = ($house == true && $car == true);
var_dump($res);

//使用if语句改写
$house = true;
$car = false;
if( ($house == true && $car == true) ){
	echo "嫁人";
}else{
	echo "不嫁";
}

b女有房或者有车都嫁, ||的意思是起码有一个条件为真

$house = false;
$car = false;
if ($house || $car) {
	echo "嫁";
}else{
	echo "遗憾saybeybey"; // 遗憾saybeybey
}

递增递减运算符

++或–在变量后面,变量先进行赋值运算后进行自身运算。
++或–在变量前面,变量先进行自身运算后进行赋值运算。

$b = 5;
$a = $b++;
var_dump($a,$b); // int 5, int 6

$b = 5;
$a = $b--;
var_dump($a,$b); // int 5, int 4

$b = 5;
$a = ++$b;
var_dump($a,$b); // int 6, int 6

$b = 5;
$a = --$b;
var_dump($a,$b); // int 4, int 4

字符串运算符

使用点(.)进行字符串的拼接

$a = 'hello';
$b = 'world';
$c = $a . $b;
var_dump($c); //string 'helloworld' (length=10)

$d = 112;
$c = $c . $d;
var_dump($c); // string 'helloworld112' (length=13)

//下面那个运行速度快

$a = 'hello';
$b = 'world';
echo $a,$b;
echo "=====";
echo $a.$b;

赋值运算符

a = 3 ; / / 这 是 一 个 赋 值 运 算 。 有 两 个 效 果 , 1 是 把 3 赋 给 a = 3;//这是一个赋值运算。有两个效果,1是把3赋给 a=3;//13a,2是返回运算结果。

控制语句

if else

最简单的不是就是控制语句

switch case

适合判断多个值的匹配,不适合用在范围判断

$today = 8 ;
switch ($today) {
	case '1':
		echo "今天星期一";
		break;

	case '2':
		echo "今天星期二";
		break;

	case '3':
		echo "今天星期三";
		break;

	case '4':
		echo "今天星期四";
		break;

	case '5':
		echo "今天星期五";
		break;

	case '6':
		echo "今天星期六";
		break;

	case '7':
		echo "今天星期日";
		break;
	
	default:
		echo "你来自火星";
		break;
}

while

张三有钱10万,需要经过我的山头。当其携带金钱大于50000时,
每次需要交其总钱数的0.05。当其携带金钱小于50000大于等于5000时,
每次通过需要交5000元。问张三能安全的从我的山头通过几次?

// method one
$money = 100000;
$num = 0;
while ($money > 50000) {
	
	$money *= 0.95;
	++$num;

	echo '张三第',$num,'次经过路口时,还剩下',$money,'元<br />';

}
while( $money >= 5000 ) {
	$money -= 5000;
	++$num;
    echo '张三第',$num,'次经过路口时,还剩下',$money,'元<br />';
}

// method two
for ($i=100000,$count = 0; $i >= 5000;) {

	$count += 1;
	if ($i >50000) {
		$i *= 0.95;
	}else{
		$i -= 5000;
	}
	echo '第',$count,'次经过路口时,还剩下',$i,'元<br />';
}

do while

for

打印99乘法表

for ($i=1; $i <= 9 ; $i++) { 

	for ($j=1; $j <= $i ; $j++) { 

		$res = $i * $j;

		echo "{$j} x {$i} = {$res} &nbsp;&nbsp;";
	}
	echo "<br />";
}

《张丘建算经》成书于公元5世纪,作者是北魏人,
书中最后一道题,堪称亮点,通常也被称为“百钱买百鸡”的问题
民间则流传着县令考问神童的佳话,原文如下:
今有鸡翁一,值钱5;鸡母一,值钱3;鸡雏三,值钱1;
百钱买鸡百只,问鸡翁,母,雏各几何?

for ($g=1; $g <= 20 ; $g++) {
	for ($m = 1; $m <= 33; $m++){
		$i = 100-($g+$m); 
		if ($g+$m+$i==100&&($g*5+$m*3+$i/3)==100) {
			echo '公母雏各',$g,'&nbsp;','&nbsp;',$m,'&nbsp;','&nbsp;',$i,'<br />';
		}
	}
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值