设为首页 收藏本站
查看: 786|回复: 0

[经验分享] PHP学习笔记(整理完成)

[复制链接]

尚未签到

发表于 2017-3-23 09:33:13 | 显示全部楼层 |阅读模式
PHP学习笔记
一、现在开始学习PHP
老猴要弄个网站,提供主机空间的以php+mysql的居多,比较价格也相对较低,所以正好可以学习php.
不过,后来,他又说不急,我也就没有正式开始.今天顺便玩玩,还行,不同于java是强类型语言,php是无类型语言,这一点和_javascript是相似的。
参考如下的示例代码(改编自php manual):

$bool = TRUE; //a boolean
$str ="foo"; // a string
$int = 12; // aninteger
echogettype($bool); // prints out "boolean"
echo"\n";
echogettype($str); // prints out "string"
echo"\n";
$bool=12;
echogettype($bool); // prints out "integer"
/*
这里,由于重新将数值12赋给了本来是boolean类型的变量bool,这样,变量bool的类型变成了integer,像java那样的强类型语言,赋值只发生在同类型之间。
*/
?>
<!----> <!----><o:p></o:p>
二、PHP与众不同的continue
continue与众不同之处在于接受一个可选的数字参数来决定跳过几重循环到循环结尾。
#php_continue.php
/*
在php中,continue 在循环结构用用来跳过本次循环中剩余的代码并开始执行下一次循环。
这一点和其他语言是一致的,
不过,另有妙处:continue 接受一个可选的数字参数来决定跳过几重循环到循环结尾。
*/
$i = 0;
$j = 0;
while ($i++ <3) {//level 3
echo "Outer
\n";
while (1){//level 2
echo "Middle
\n";
while (1){//level 1
echo "Inner
\n";
continue 3;
}
echo "Thisnever gets output.
\n";
}
echo"Neither does this.
\n";
$j++;
//after runscontinue 3,it comes to the end of level 3
}
echo"\$j=$j";//output: $j=0
?>
三、PHP中的数组

#php_array.php
/*默认的方式下,php的array的key是非负整数,这种情形和多数语言如c,c++,java中的数组是一致的
*从这点看,java中的数组其实是php中数组的一种默认的方式;而php的array则还有java中Map类的特性:key-value
×php manual中的说法“PHP 中的数组实际上是一个有序图。图是一种把 values 映射到 keys 的类型”
*/
$array=array("0","1","2","3","4","5");
print_r($array);
/*
output:
Array
(
    [0] => 0
    [1] => 1
    [2] => 2
    [3] => 3
    [4] => 4
    [5] => 5
)
*/
//用 count() 函数来数出数组中元素的个数
for($i=0,$size=count($array);$i<$size;$i++)
{
    echo $array[$i];
    echo "\n";
}
/*
output:
0
1
2
3
4
5
*/
<!----> <!----><o:p></o:p>
/*use foreach toloop*/
echo"foreach to loop\n";
foreach($arrayas $temp){
    echo($temp);
    echo "\n";
}
//output asabove
<!----> <!----><o:p></o:p>
/* foreachexample 1: value only */
<!----> <!----><o:p></o:p>
$a = array (1,2, 3, 17);
<!----> <!----><o:p></o:p>
foreach ($a as$v) {
   print "Current value of \$a:$v.\n";//这里使用了转义字符\,使得$a作为一个字串输出
}
/*
output:
Current value of$a: 1.
Current value of$a: 2.
Current value of$a: 3.
Current value of$a: 17.
*/
<!----> <!----><o:p></o:p>
/* foreachexample 2: value (with key printed for illustration) */
<!----> <!----><o:p></o:p>
$a = array (1,2, 3, 17);
<!----> <!----><o:p></o:p>
$i = 0; /* forillustrative purposes only */
<!----> <!----><o:p></o:p>
foreach ($a as$v) {
   print "\$a[$i] => $v.\n";
   $i++;
}
$array2=array("a"=>"avalue","b"=>"bvalue","c"=>"b");
print_r($array2);
echo"****\n";
echo$array2[$array2["c"]];//
//echo$array2[$array2[2]];//企图像java那样使用数组下标方式,是无效的
echo "\n***\n";
/*output:
****
bvalue
***
*/
$arr =array("foo" => "bar", 12 => true);
<!----> <!----><o:p></o:p>
echo$arr["foo"]; // bar
echo$arr[12];    // 1
?>
四、可变变量、字符串运算符和数组运算符:相异于其他语言的部分
 
#php的可变变量
/*可变变量就是变量名可以动态的设置和使用的变量。
一个可变变量获取了一个普通变量的值作为这个可变变量的变量名。
因为普通变量的值是可变的,所以可变变量的变量名也是可变的。
*/
//可变变量适合在什么场合使用呢?
$a ="hello";//定义一个普通变量
$$a ="world";//定义一个可变变量
echo"$a\n";//output:hello
echo"${$a}\n";//使用可变变量
//同echo "$hello\n";//output:world
echo"$hello\n";
?>
<!----> <!----><o:p></o:p>

#php的字符串运算符
//连接运算符(“.”)
$a="first";
$b=$a."==>second";//now$b is "first==>second"
echo"$b\n";
<!----> <!----><o:p></o:p>
//连接赋值运算符(“.=”)
//the same to$a=$a."==>second"
$a.="==>second";//now&a is "first==>second"
echo"$a\n";
<!----> <!----><o:p></o:p>
/*其实可以理解为就只有一种,即连接运算符
这里的点(".")连接运算符和java语言中的字符串连接符("+")是类似的。*/
?>
<!----> <!----><o:p></o:p>

#php的数组运算符:+
/* PHP 仅有的一个数组运算符是 + 运算符。
它把右边的数组附加到左边的数组后,但是重复的键值不会被覆盖。
亦即,以左边的数组为主导,若附加其上的(右边的)数组中有与其key重复的部分将被忽略
*/
$a =array("a" => "apple", "b" =>"banana");
$b =array("a" =>"pear", "b" =>"strawberry", "c" => "cherry");
$a1=array("c"=>"a1_cherry","d"=>"a1=d");
$c = $a + $b;
var_dump($c);
/*output:
array(3) {
  ["a"]=>
  string(5) "apple"
  ["b"]=>
  string(6) "banana"
  ["c"]=>
  string(6) "cherry"
}
*/
<!----> <!----><o:p></o:p>
$d = $a +$b+$a1;
var_dump($d);
/*output:
array(4) {
  ["a"]=>
  string(5) "apple"
  ["b"]=>
  string(6) "banana"
  ["c"]=>
  string(6) "cherry"
  ["d"]=>
  string(4) "a1=d"
}
*/
?>
<!----> <!----><o:p></o:p>
五、NULL
PHPmanual关于NULL的描述:"
NULL
特殊的 NULL 值表示一个变量没有值。NULL类型唯一可能的值就是NULL。
在下列情况下一个变量被认为是 NULL:
  * 被赋值为 NULL。
  * 尚未被赋值。
  * 被 unset()。
NULL 类型只有一个值,就是大小写敏感的关键字 NULL。
"
<!----> <!----><o:p></o:p>
好混乱啊,在javascript中还有关键字:var用来声明变量,php没有,美元符号($)后面跟个合法的字符串,一个php的变量就诞生了,如上所说,它尚未被赋值,应该被认为是:NULL。使用strlen()试图将其当作string,并算出它的长度,这样做,php引擎不认为是错用。

if(is_null($none))
    print"length=".strlen($none)."\n";//can output:length=0
else
    print "undefinedvariable\n";//can not come here
?>

//PHPmanual说明:(1)is_null --  检测变量是否为 NULL
//(2)NULL 类型只有一个值,就是大小写敏感的关键字 NULL
<!----> <!----><o:p></o:p>
$fo=null;
<!----> <!----><o:p></o:p>
if(is_null($fo))
{//依据上述(2),并非大写的NULL,本不该执行此处的,实际上并非如此,why?
    echo "\$fo=null isNULL\n";//output:$fo=null is NULL
}
$foo=NULL;
if (is_null($f)){
    echo "\$f=NULL is alsoNULL";//out put:$f=NULL is also NULL
}
?>

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-353895-1-1.html 上篇帖子: php.ini配置文件详解 下篇帖子: PHP-数据库方面
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表