• 【面霸2】


    //1、使对象可以像数组一样进行foreach循环,要求属性必须是私有。(Iterator模式的PHP5实现,写一类实现Iterator接口)

           class MyClass implements Iterator{

                  private $vars = array();

                  private $var1;

                  private $var2;

                  private $var3;

                  function __set($name , $value){

                         $this->vars[$name] = $value;

                  }

                  function __get($name){

                         return $this->vars[$name];

                  }

                  public function rewind() {

                         reset($this->vars);

                  }

                  public function current() {

                         return current($this->vars);

                  }      

                  public function key() {

                         return key($this->vars);

                  }      

                  public function next() {

                         return next($this->vars);

                  }

                  public function valid() {

                         return $this->current() !== false;

                  }

           }

     

           $it = new MyClass($values);

           $it->var1 = 1;

           $it->var2 = 2;

           $it->var3 = 3;

           foreach ($it as $a => $b) {

                  print “$a: $b“;

           }

     

     

    //2、用PHP实现一个双向队列

           class DoubleEndedQueue{

                  protected $elements;

                  public function __construct(){

                         $this->elements = array();

                  }

                  public function push($element){

                         array_unshift($this->elements , $element);

                  }

                  public function pop(){

                         return array_shift($this->element);

                  }

                  public function inject($element){

                         $this->elements[] = $element;

                  }

                  public function eject(){

                         array_pop($this->elements);

                  }

           }

     

     

    //3、请写一段PHP代码,确保多个进程同时写入同一个文件成功

           function write_file($filename, $content){

                   $lock = $filename . '.lck';

                   $write_length = 0;

                   while(true) {

                         if( file_exists($lock) ) {

                                usleep(100);

                         } else {

                                touch($lock);

                                $write_length = file_put_contents($filename, $content, FILE_APPEND);

                                break;

                         }

                   }

                   if( file_exists($lock) ) {

                         unlink($lock);

                   }

                   return $write_length;

           }

     

     

    //4、有一个一维数组,里面存储整形数据,请写一个函数,将他们按从大到小的顺序排列。要求执行效率高。并说明如何改善执行效率。

           function BubbleSort(&$arr){

                  $cnt=count($arr);

                  $flag=1;

                  for($i=0;$i<$cnt;$i++)   {

                         if($flag==0){

                                return;

                         }

                         $flag=0;

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

                                if($arr[$j]>$arr[$j+1]){

                                       $tmp=$arr[$j];

                                       $arr[$j]=$arr[$j+1];

                                       $arr[$j+1]=$tmp;

                                       $flag=1;

                                }

                         }

                  }

           }

           $test=array(1,3,6,8,2,7);

           BubbleSort($test);

           var_dump($test); 

    //5、PHP获取远程web服务器时间的代码

           function get_time($server){

                  $data = "HEAD / HTTP/1.1 ";

                  $data .= "Host: $server ";

                  $data .= "Connection: Close ";

                  $fp = fsockopen($server, 80);

                  fputs($fp, $data);

                  $resp = '';

                  while ($fp && !feof($fp))

                         $resp .= fread($fp, 1024);

                  preg_match('/^Date: (.*)$/mi',$resp,$matches);

                  return strtotime($matches[1]);

           }

           echo date('Y-m-d H:i:s',get_time("outofmemory.cn")); 

    我发现了一个奇怪的现象,就是经常赞我的人,特别是支持我的人,都在不久后做成了如下事情:1、恋爱成功了;2、生意谈成了;3、事业有成了;4、升官发财了;5、心情舒畅了;6、家庭和睦了;7、身体健康了;8、万事如意了
  • 相关阅读:
    如何通过npm编译Typescript代码
    TypeScript 中的':' 和'?:'的区别
    无法读取本地服务器JSON文件, 返回404错误
    Nodejs , npn 注册 包上传,更新,下载
    Java 字符流
    Java 字节流
    Java中的File类,递归是什么?
    JDBC工具类—如何封装JDBC
    JDBC的开发步骤
    vFor和vIf不要一起使用
  • 原文地址:https://www.cnblogs.com/zhuyibo/p/3985172.html
Copyright © 2020-2023  润新知